Wrapper class for the heapq module
For people who prefer object-oriented style, this wrapper class
provides a cleaner interface to the functions in the heapq module. It
also provides some additional capabilities, including reduce, which is
useful in some graph algorithms.
A heap, as implemented by the heapq module, is a list that happens to
have the heap property, which is that there is no value of k such that
heap[k] > heap[2*k+1] or heap[k] > heap[2*k+2]. The heapq module(more...)