]>
The domain Heap(S) implements a priority queue of objects of type S such that the operation extract! removes and returns the maximum element. The implementation represents heaps as flexible arrays (see FlexibleArrayXmpPage ). The representation and algorithms give complexity of for insertion and extractions, and for construction.
Create a heap of six elements.
Use insert! to add an element.
The operation extract! removes and returns the maximum element.
The internal structure of h has been appropriately adjusted.
Now extract! elements repeatedly until none are left, collecting the elements in a list.
Another way to produce the same result is by defining a heapsort function.
Create another sample heap.
Apply heapsort to present elements in order.