1: public T removeMax()
2: {
3: checkInitialization(); // Ensure initialization of data fields
4: T root = null;
5:
6: if (!isEmpty())
7: {
8: root = heap[1]; // Return value
9: heap[1] = heap[lastIndex]; // Form a semiheap
10: lastIndex--; // Decrease size
11: reheap(1); // Transform to a heap
12: } // end if
13:
14: return root;
15: } // end removeMax
16: // Version 4.0