Module Heap.Functional

Parameters

module X : Ordered

Signature

type t

Type of functional heaps

type elt = X.t

Type of elements

val empty : t

The empty heap

val add : elt -> t -> t

add x h returns a new heap containing the elements of h, plus x; complexity $ O(log(n)) $

val maximum : t -> elt

maximum h returns the maximum element of h; raises EmptyHeap when h is empty; complexity $ O(1) $

val remove : t -> t

remove h returns a new heap containing the elements of h, except the maximum of h; raises EmptyHeap when h is empty; complexity $ O(log(n)) $

val iter : (elt -> unit) -> t -> unit

usual iterators and combinators; elements are presented in arbitrary order

val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a