Owl_utils_heapSourceType of a min heap.
make cmp creates an empty min heap, using cmp as a comparison function.
make_int ?initial_size cmp creates an empty integer heap, using cmp as a comparison function and pre-allocates a space of initial_size elements.
make_float ?initial_size cmp creates an empty float heap, using cmp as a comparison function and pre-allocates a space of initial_size elements.
push heap x pushes x into heap. Time complexity is O(log(n)), where n is the size of heap.
pop heap pops the minimal element from heap. It raises an exception if the heap is empty. Time complexity is O(log(n)), where n is the size of heap.
peek heap returns the value of the minimal element in heap but it does not remove the element from the heap. Raises an exception if the heap is empty. Time complexity is O(1).