The heapq module implements a priority queue using a heap. Heaps are simply lists of ordered items in which the heap condition has been imposed. Specifically, heap[n] <= heap[2*n+1] and heap[n] <= heap[2*n+2] for all n, starting with n =0. heap always contains the smallest item.
Converts a list, x, into a heap, in place.
Returns and removes the smallest item from heap, preserving the heap condition. Raises IndexError if heap is empty.
Adds item to the heap, preserving the heap condition.
Returns and removes the smallest item from the heap. At the same time, a new item is added. The heap condition is preserved in the process. This function is more efficient that calling ...