sig
exception OVERFLOW
module type OrderedType =
sig
type t
val compare : Heap.OrderedType.t -> Heap.OrderedType.t -> int
val to_string : Heap.OrderedType.t -> string
end
module Heap :
functor (Ord : OrderedType) ->
sig
type data = Ord.t
type t
val create : Heap.Heap.data -> Heap.Heap.t
val add : Heap.Heap.t -> Heap.Heap.data -> unit
val min : Heap.Heap.t -> Heap.Heap.data
val remove_min : Heap.Heap.t -> Heap.Heap.data
val iter : (Heap.Heap.data -> unit) -> Heap.Heap.t -> unit
val is_empty : Heap.Heap.t -> bool
val size : Heap.Heap.t -> int
end
module MinMaxHeap :
functor (Ord : OrderedType) ->
sig
type data = Ord.t
type t
val create : Heap.MinMaxHeap.data -> Heap.MinMaxHeap.t
val add : Heap.MinMaxHeap.t -> Heap.MinMaxHeap.data -> unit
val min : Heap.MinMaxHeap.t -> Heap.MinMaxHeap.data
val max : Heap.MinMaxHeap.t -> Heap.MinMaxHeap.data
val remove_min : Heap.MinMaxHeap.t -> Heap.MinMaxHeap.data
val remove_max : Heap.MinMaxHeap.t -> Heap.MinMaxHeap.data
val iter :
(Heap.MinMaxHeap.data -> unit) -> Heap.MinMaxHeap.t -> unit
val is_empty : Heap.MinMaxHeap.t -> bool
val size : Heap.MinMaxHeap.t -> int
val to_string : Heap.MinMaxHeap.t -> string
end
end