Implements the minmax ordered priority queue of chapter 3.
Be aware that none of the driver programs utilises the minmax ordering, so the testing of the implementation is not complete.