[ library(heaps) | Reference Manual | Alphabetic Index ]
get_from_heap(+OldHeap, ?Key, ?Datum, -NewHeap)
returns the Key-Datum pair in OldHeap with the smallest Key
returns the Key-Datum pair in OldHeap with the smallest Key, and
also a New Heap which is the Old Heap with that pair deleted.
The easy part is picking off the smallest element. The hard part
is repairing the heap structure. repair_heap/4 takes a pair of
heaps and returns a new heap built from their elements, and the
position number of the gap in the new tree. Note that repair_heap
is *not* tail-recursive.