[ library(heaps) | The ECLiPSe Libraries | Reference Manual | Alphabetic Index ]
# add_to_heap(+OldHeap, +Key, +Datum, -NewHeap)

inserts the new Key-Datum pair into the heap
## Description

inserts the new Key-Datum pair into the heap. The insertion is
not stable, that is, if you insert several pairs with the same
Key it is not defined which of them will come out first, and it
is possible for any of them to come out first depending on the
history of the heap. If you need a stable heap, you could add
a counter to the heap and include the counter at the time of
insertion in the key. If the free list is empty, the tree will
be grown, otherwise one of the empty slots will be re-used. (I
use imperative programming language, but the heap code is as
pure as the trees code, you can create any number of variants
starting from the same heap, and they will share what common
structure they can without interfering with each other.)