mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-06 03:05:28 -05:00
11 lines
No EOL
16 KiB
HTML
11 lines
No EOL
16 KiB
HTML
<!DOCTYPE html>
|
|
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Make (containers.CCHeap.Make)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> — <span class="package">package <a href="../../index.html">containers</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">CCHeap.Make</span></h1></header><h3 class="heading">Parameters</h3><div><div class="spec argument" id="argument-1-E"><a href="#argument-1-E" class="anchor"></a><div class="def argument"><code><a href="argument-1-E/index.html">E</a> : <a href="../index.html#module-type-PARTIAL_ORD">PARTIAL_ORD</a></code></div><div class="doc"></div></div></div><h3 class="heading">Signature</h3><div class="spec type" id="type-elt"><a href="#type-elt" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>elt</code><code><span class="keyword"> = </span><a href="argument-1-E/index.html#type-t">E.t</a></code><code></code></div><div class="doc"></div></div><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code></code><code></code></div><div class="doc"></div></div><div class="spec val" id="val-empty"><a href="#val-empty" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>empty : <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Empty heap.</p></div></div><div class="spec val" id="val-is_empty"><a href="#val-is_empty" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>is_empty : <a href="index.html#type-t">t</a> <span class="keyword">‑></span> bool</code></div><div class="doc"><p>Is the heap empty?</p></div></div><div class="spec exception" id="exception-Empty"><a href="#exception-Empty" class="anchor"></a><div class="def exception"><code><span class="keyword">exception </span></code><code><span class="exception">Empty</span></code></div><div class="doc"></div></div><div class="spec val" id="val-merge"><a href="#val-merge" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>merge : <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Merge two heaps.</p></div></div><div class="spec val" id="val-insert"><a href="#val-insert" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>insert : <a href="index.html#type-elt">elt</a> <span class="keyword">‑></span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Insert a value in the heap.</p></div></div><div class="spec val" id="val-add"><a href="#val-add" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>add : <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <a href="index.html#type-elt">elt</a> <span class="keyword">‑></span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Synonym to <a href="index.html#val-insert">insert</a>.</p></div></div><div class="spec val" id="val-filter"><a href="#val-filter" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>filter : (<a href="index.html#type-elt">elt</a> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Filter values, only retaining the ones that satisfy the predicate.
|
|
Linear time at least.</p></div></div><div class="spec val" id="val-find_min"><a href="#val-find_min" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>find_min : <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <a href="index.html#type-elt">elt</a> option</code></div><div class="doc"><p>Find minimal element.</p></div></div><div class="spec val" id="val-find_min_exn"><a href="#val-find_min_exn" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>find_min_exn : <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <a href="index.html#type-elt">elt</a></code></div><div class="doc"><p>Like <a href="index.html#val-find_min">find_min</a> but can fail.</p><ul class="at-tag"><li><span class="at-tag raise">Raises</span> <span class="module-path">Empty</span>: if the heap is empty.</li></ul></div></div><div class="spec val" id="val-take"><a href="#val-take" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>take : <a href="index.html#type-t">t</a> <span class="keyword">‑></span> (<a href="index.html#type-t">t</a><span class="keyword"> * </span><a href="index.html#type-elt">elt</a>) option</code></div><div class="doc"><p>Extract and return the minimum element, and the new heap (without
|
|
this element), or <code class="code">None</code> if the heap is empty.</p></div></div><div class="spec val" id="val-take_exn"><a href="#val-take_exn" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>take_exn : <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <a href="index.html#type-t">t</a><span class="keyword"> * </span><a href="index.html#type-elt">elt</a></code></div><div class="doc"><p>Like <a href="index.html#val-take">take</a>, but can fail.</p><ul class="at-tag"><li><span class="at-tag raise">Raises</span> <span class="module-path">Empty</span>: if the heap is empty.</li></ul></div></div><div class="spec val" id="val-delete_one"><a href="#val-delete_one" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>delete_one : (<a href="index.html#type-elt">elt</a> <span class="keyword">‑></span> <a href="index.html#type-elt">elt</a> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <a href="index.html#type-elt">elt</a> <span class="keyword">‑></span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Delete one occurrence of a value if it exist in the heap.
|
|
<code class="code">delete_one eq x h</code>, use <code class="code">eq</code> to find one <code class="code">x</code> in <code class="code">h</code> and delete it.
|
|
If <code class="code">h</code> do not contain <code class="code">x</code> then it return <code class="code">h</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.0</li></ul></div></div><div class="spec val" id="val-delete_all"><a href="#val-delete_all" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>delete_all : (<a href="index.html#type-elt">elt</a> <span class="keyword">‑></span> <a href="index.html#type-elt">elt</a> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <a href="index.html#type-elt">elt</a> <span class="keyword">‑></span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Delete all occurrences of a value in the heap.
|
|
<code class="code">delete_all eq x h</code>, use <code class="code">eq</code> to find all <code class="code">x</code> in <code class="code">h</code> and delete them.
|
|
If <code class="code">h</code> do not contain <code class="code">x</code> then it return <code class="code">h</code>.
|
|
The difference with <a href="index.html#val-filter">filter</a> is that <code class="code">delete_all</code> stops as soon as
|
|
it enters a subtree whose root is bigger than the element.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.0</li></ul></div></div><div class="spec val" id="val-iter"><a href="#val-iter" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>iter : (<a href="index.html#type-elt">elt</a> <span class="keyword">‑></span> unit) <span class="keyword">‑></span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> unit</code></div><div class="doc"><p>Iterate on elements.</p></div></div><div class="spec val" id="val-fold"><a href="#val-fold" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>fold : (<span class="type-var">'a</span> <span class="keyword">‑></span> <a href="index.html#type-elt">elt</a> <span class="keyword">‑></span> <span class="type-var">'a</span>) <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span></code></div><div class="doc"><p>Fold on all values.</p></div></div><div class="spec val" id="val-size"><a href="#val-size" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>size : <a href="index.html#type-t">t</a> <span class="keyword">‑></span> int</code></div><div class="doc"><p>Number of elements (linear complexity).</p></div></div><div class="spec val" id="val-to_list"><a href="#val-to_list" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_list : <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <a href="index.html#type-elt">elt</a> list</code></div><div class="doc"><p>Return the elements of the heap, in no particular order.</p></div></div><div class="spec val" id="val-to_list_sorted"><a href="#val-to_list_sorted" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_list_sorted : <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <a href="index.html#type-elt">elt</a> list</code></div><div class="doc"><p>Return the elements in increasing order.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 1.1</li></ul></div></div><div class="spec val" id="val-add_list"><a href="#val-add_list" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>add_list : <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <a href="index.html#type-elt">elt</a> list <span class="keyword">‑></span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Add the elements of the list to the heap. An element occurring several
|
|
times will be added that many times to the heap.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.16</li></ul></div></div><div class="spec val" id="val-of_list"><a href="#val-of_list" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_list : <a href="index.html#type-elt">elt</a> list <span class="keyword">‑></span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">of_list l</code> is <code class="code">add_list empty l</code>.</p></div></div><div class="spec val" id="val-add_seq"><a href="#val-add_seq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>add_seq : <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <a href="index.html#type-elt">elt</a> <a href="../index.html#type-sequence">sequence</a> <span class="keyword">‑></span> <a href="index.html#type-t">t</a></code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.16</li></ul></div></div><div class="spec val" id="val-of_seq"><a href="#val-of_seq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_seq : <a href="index.html#type-elt">elt</a> <a href="../index.html#type-sequence">sequence</a> <span class="keyword">‑></span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Build a heap from a given <code class="code">sequence</code>.</p></div></div><div class="spec val" id="val-to_seq"><a href="#val-to_seq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_seq : <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <a href="index.html#type-elt">elt</a> <a href="../index.html#type-sequence">sequence</a></code></div><div class="doc"><p>Return a <code class="code">sequence</code> of the elements of the heap.</p></div></div><div class="spec val" id="val-to_seq_sorted"><a href="#val-to_seq_sorted" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_seq_sorted : <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <a href="index.html#type-elt">elt</a> <a href="../index.html#type-sequence">sequence</a></code></div><div class="doc"><p>Iterate on the elements, in increasing order.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 1.1</li></ul></div></div><div class="spec val" id="val-add_klist"><a href="#val-add_klist" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>add_klist : <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <a href="index.html#type-elt">elt</a> <a href="../index.html#type-klist">klist</a> <span class="keyword">‑></span> <a href="index.html#type-t">t</a></code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.16</li></ul></div></div><div class="spec val" id="val-of_klist"><a href="#val-of_klist" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_klist : <a href="index.html#type-elt">elt</a> <a href="../index.html#type-klist">klist</a> <span class="keyword">‑></span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Build a heap from a given <code class="code">klist</code>.</p></div></div><div class="spec val" id="val-to_klist"><a href="#val-to_klist" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_klist : <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <a href="index.html#type-elt">elt</a> <a href="../index.html#type-klist">klist</a></code></div><div class="doc"><p>Return a <code class="code">klist</code> of the elements of the heap.</p></div></div><div class="spec val" id="val-add_gen"><a href="#val-add_gen" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>add_gen : <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <a href="index.html#type-elt">elt</a> <a href="../index.html#type-gen">gen</a> <span class="keyword">‑></span> <a href="index.html#type-t">t</a></code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.16</li></ul></div></div><div class="spec val" id="val-of_gen"><a href="#val-of_gen" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_gen : <a href="index.html#type-elt">elt</a> <a href="../index.html#type-gen">gen</a> <span class="keyword">‑></span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Build a heap from a given <code class="code">gen</code>.</p></div></div><div class="spec val" id="val-to_gen"><a href="#val-to_gen" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_gen : <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <a href="index.html#type-elt">elt</a> <a href="../index.html#type-gen">gen</a></code></div><div class="doc"><p>Return a <code class="code">gen</code> of the elements of the heap.</p></div></div><div class="spec val" id="val-to_tree"><a href="#val-to_tree" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_tree : <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <a href="index.html#type-elt">elt</a> <a href="../index.html#type-ktree">ktree</a></code></div><div class="doc"><p>Return a <code class="code">ktree</code> of the elements of the heap.</p></div></div><div class="spec val" id="val-pp"><a href="#val-pp" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pp : ?⁠sep:string <span class="keyword">‑></span> <a href="index.html#type-elt">elt</a> <a href="../index.html#type-printer">printer</a> <span class="keyword">‑></span> <a href="index.html#type-t">t</a> <a href="../index.html#type-printer">printer</a></code></div><div class="doc"></div></div></body></html> |