``` 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 ``` ```package algs24; import stdlib.StdIn; import stdlib.StdOut; /** * The PMytrHeap class is the priorityQ class from Question 2.4.24. It * represents a priority queue of generic keys. * * It supports the usual insert and delete-the-maximum * operations, along with methods for peeking at the maximum key, testing if the * priority queue is empty, and iterating through the keys. For additional * documentation, see Section * 2.4 of Algorithms, 4th Edition by Robert Sedgewick and Kevin * Wayne. */ public class MyPtrHeap> { /** Create an empty priority queue */ public MyPtrHeap () { // TODO } /** Is the priority queue empty? */ public boolean isEmpty () { // TODO return true; } /** Return the number of items on the priority queue. */ public int size () { // TODO return 0; } /** * Return the largest key on the priority queue. Throw an exception if the * priority queue is empty. */ public K max () { // TODO return null; } /** Add a new key to the priority queue. */ public void insert (K x) { // TODO return; } /** * Delete and return the largest key on the priority queue. Throw an * exception if the priority queue is empty. */ public K delMax () { // TODO return null; } private void showHeap () { // a method to print out the heap // useful for debugging } public static void main (String[] args) { MyPtrHeap pq = new MyPtrHeap<> (); StdIn.fromString ("10 20 30 40 50 - - - 05 25 35 - - - 70 80 05 - - - - "); while (!StdIn.isEmpty ()) { StdOut.print ("pq: "); pq.showHeap (); String item = StdIn.readString (); if (item.equals ("-")) StdOut.println ("max: " + pq.delMax ()); else pq.insert (item); } StdOut.println ("(" + pq.size () + " left on pq)"); } } ```