Module Bounded_heap.Make

Parameters

module E : Stdlib.Set.OrderedType

Signature

type t
val create : int -> t

create size create a bounded sequence of at most size elements.

Raise Invalid_argument if size < 0 or size > Sys.max_array_length.

val insert : E.t -> t -> unit

insert e b adds element e to bounded sequence b if:

  • b is not full (i.e, we have not inserted size elements until now); or
  • there is an element e' from b such that E.compare e' e < 0.

Worst-case complexity: O(log n) where n is the size of the heap.

val get : t -> E.t list

get b returns the contents of b as a sorted list in increasing order according to E.compare.

Worst-case complexity: O(n log n) where n is the size of the heap.

val peek : t -> E.t option

peek b returns Some e if b is not empty where e is the smallest element in b according to E.compare, None otherwise.

Worst-case complexity: O(1).