E : PARTIAL_ORD
type elt
= E.t
type t
val empty : t
Empty heap
val is_empty : t ‑> bool
Is the heap empty?
exception
Empty
val merge : t ‑> t ‑> t
Merge two heaps
val insert : elt ‑> t ‑> t
Insert a value in the heap
val add : t ‑> elt ‑> t
Synonym to insert
val filter : (elt ‑> bool) ‑> t ‑> t
Filter values, only retaining the ones that satisfy the predicate. Linear time at least.
val find_min : t ‑> elt option
Find minimal element
val find_min_exn : t ‑> elt
Same as find_min but can fail
val take : t ‑> (t * elt) option
Extract and return the minimum element, and the new heap (without this element), or None if the heap is empty
None
val take_exn : t ‑> t * elt
Same as take, but can fail.
val iter : (elt ‑> unit) ‑> t ‑> unit
Iterate on elements
val fold : ('a ‑> elt ‑> 'a) ‑> 'a ‑> t ‑> 'a
Fold on all values
val size : t ‑> int
Number of elements (linear complexity)
val to_list : t ‑> elt list
Return the elements of the heap, in no particular order.
val to_list_sorted : t ‑> elt list
Return the elements in increasing order
val add_list : t ‑> elt list ‑> t
Add the elements of the list to the heap. An element occurring several times will be added that many times to the heap.
val of_list : elt list ‑> t
of_list l = add_list empty l
val add_seq : t ‑> elt sequence ‑> t
val of_seq : elt sequence ‑> t
val to_seq : t ‑> elt sequence
val to_seq_sorted : t ‑> elt sequence
Iterate on the elements, in increasing order
val add_klist : t ‑> elt klist ‑> t
val of_klist : elt klist ‑> t
val to_klist : t ‑> elt klist
val add_gen : t ‑> elt gen ‑> t
val of_gen : elt gen ‑> t
val to_gen : t ‑> elt gen
val to_tree : t ‑> elt ktree
val print : ?sep:string ‑> elt printer ‑> t printer