
V - Value typepublic class IntegerObjectMaxHeap<V> extends Object implements IntegerObjectHeap<V>
| Modifier and Type | Class and Description | 
|---|---|
private class  | 
IntegerObjectMaxHeap.UnsortedIter
Unsorted iterator - in heap order. 
 | 
| Modifier and Type | Field and Description | 
|---|---|
private static int | 
FOUR_HEAP_INITIAL_SIZE
Initial size of 4-ary heap when initialized.
 
 21 = 4-ary heap of height 2: 1 + 4 + 4*4
 
 85 = 4-ary heap of height 3: 21 + 4*4*4
 
 341 = 4-ary heap of height 4: 85 + 4*4*4*4
 
 Since we last grew by 255 (to 511), let's use 341. 
 | 
protected int[] | 
fourheap
Extension heap. 
 | 
protected Object[] | 
fourvals
Extension heapvalues. 
 | 
protected int | 
modCount
(Structural) modification counter. 
 | 
protected int | 
size
Current size of heap. 
 | 
private static int | 
TWO_HEAP_INITIAL_SIZE
Initial size of the 2-ary heap. 
 | 
private static int | 
TWO_HEAP_MAX_SIZE
Maximum size of the 2-ary heap. 
 | 
protected int[] | 
twoheap
Base heap. 
 | 
protected Object[] | 
twovals
Base heap values. 
 | 
| Constructor and Description | 
|---|
IntegerObjectMaxHeap()
Constructor, with default size. 
 | 
IntegerObjectMaxHeap(int minsize)
Constructor, with given minimum size. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
void | 
add(int o,
   V v)
Add a key-value pair to the heap 
 | 
void | 
add(int key,
   V val,
   int max)
Add a key-value pair to the heap if it improves the top. 
 | 
void | 
clear()
Clear the heap contents. 
 | 
private void | 
heapifyDown(int reinsert,
           Object val)
Invoke heapify-down for the root object. 
 | 
private void | 
heapifyDown2(int twopos,
            int cur,
            Object val)
Heapify-Down for 2-ary heap. 
 | 
private void | 
heapifyDown4(int fourpos,
            int cur,
            Object val)
Heapify-Down for 4-ary heap. 
 | 
private void | 
heapifyUp2(int twopos,
          int cur,
          Object val)
Heapify-Up method for 2-ary heap. 
 | 
private void | 
heapifyUp4(int fourpos,
          int cur,
          Object val)
Heapify-Up method for 4-ary heap. 
 | 
boolean | 
isEmpty()
Is the heap empty? 
 | 
int | 
peekKey()
Get the current top key 
 | 
V | 
peekValue()
Get the current top value 
 | 
void | 
poll()
Remove the first element 
 | 
void | 
replaceTopElement(int reinsert,
                 V val)
Combined operation that removes the top element, and inserts a new element
 instead. 
 | 
int | 
size()
Query the size 
 | 
String | 
toString()  | 
IntegerObjectMaxHeap.UnsortedIter | 
unsortedIter()
Get an unsorted iterator to inspect the heap. 
 | 
protected int[] twoheap
protected Object[] twovals
protected int[] fourheap
protected Object[] fourvals
protected int size
protected int modCount
private static final int TWO_HEAP_MAX_SIZE
private static final int TWO_HEAP_INITIAL_SIZE
private static final int FOUR_HEAP_INITIAL_SIZE
public IntegerObjectMaxHeap()
public IntegerObjectMaxHeap(int minsize)
minsize - Minimum sizepublic void clear()
IntegerObjectHeapclear in interface IntegerObjectHeap<V>public int size()
IntegerObjectHeapsize in interface IntegerObjectHeap<V>public boolean isEmpty()
IntegerObjectHeapisEmpty in interface IntegerObjectHeap<V>true when the size is 0.public void add(int o,
       V v)
IntegerObjectHeapadd in interface IntegerObjectHeap<V>o - Keyv - Valuepublic void add(int key,
       V val,
       int max)
IntegerObjectHeapadd in interface IntegerObjectHeap<V>key - Keyval - Valuemax - Desired maximum sizepublic void replaceTopElement(int reinsert,
                     V val)
IntegerObjectHeapreplaceTopElement in interface IntegerObjectHeap<V>reinsert - Key of new elementval - Value of new elementprivate void heapifyUp2(int twopos,
              int cur,
              Object val)
twopos - Position in 2-ary heap.cur - Current objectval - Current valueprivate void heapifyUp4(int fourpos,
              int cur,
              Object val)
fourpos - Position in 4-ary heap.cur - Current objectval - Current valuepublic void poll()
IntegerObjectHeappoll in interface IntegerObjectHeap<V>private void heapifyDown(int reinsert,
               Object val)
reinsert - Object to insert.val - Value to reinsert.private void heapifyDown2(int twopos,
                int cur,
                Object val)
twopos - Position in 2-ary heap.cur - Current objectval - Value to reinsert.private void heapifyDown4(int fourpos,
                int cur,
                Object val)
fourpos - Position in 4-ary heap.cur - Current objectval - Value to reinsert.public int peekKey()
IntegerObjectHeappeekKey in interface IntegerObjectHeap<V>public V peekValue()
IntegerObjectHeappeekValue in interface IntegerObjectHeap<V>public IntegerObjectMaxHeap.UnsortedIter unsortedIter()
IntegerObjectHeapunsortedIter in interface IntegerObjectHeap<V>