This module implements the min heap queue algorithm.
A heap queue is essentially a list that has its elements stored in such a way that the first item of the list is always the smallest.
Pop the first item from the
heap, and return it. Raise
The returned item will be the smallest item in the
Convert the list
xinto a heap. This is an in-place operation.