
V - Value typepublic class DoubleObjectMaxHeap<V> extends Object implements DoubleObjectHeap<V>
| Modifier and Type | Class and Description | 
|---|---|
private class  | 
DoubleObjectMaxHeap.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 double[] | 
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 double[] | 
twoheap
Base heap. 
 | 
protected Object[] | 
twovals
Base heap values. 
 | 
| Constructor and Description | 
|---|
DoubleObjectMaxHeap()
Constructor, with default size. 
 | 
DoubleObjectMaxHeap(int minsize)
Constructor, with given minimum size. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
void | 
add(double o,
   V v)
Add a key-value pair to the heap 
 | 
void | 
add(double 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(double reinsert,
           Object val)
Invoke heapify-down for the root object. 
 | 
private void | 
heapifyDown2(int twopos,
            double cur,
            Object val)
Heapify-Down for 2-ary heap. 
 | 
private void | 
heapifyDown4(int fourpos,
            double cur,
            Object val)
Heapify-Down for 4-ary heap. 
 | 
private void | 
heapifyUp2(int twopos,
          double cur,
          Object val)
Heapify-Up method for 2-ary heap. 
 | 
private void | 
heapifyUp4(int fourpos,
          double cur,
          Object val)
Heapify-Up method for 4-ary heap. 
 | 
boolean | 
isEmpty()
Is the heap empty? 
 | 
double | 
peekKey()
Get the current top key 
 | 
V | 
peekValue()
Get the current top value 
 | 
void | 
poll()
Remove the first element 
 | 
void | 
replaceTopElement(double reinsert,
                 V val)
Combined operation that removes the top element, and inserts a new element
 instead. 
 | 
int | 
size()
Query the size 
 | 
String | 
toString()  | 
DoubleObjectMaxHeap.UnsortedIter | 
unsortedIter()
Get an unsorted iterator to inspect the heap. 
 | 
protected double[] twoheap
protected Object[] twovals
protected double[] 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 DoubleObjectMaxHeap()
public DoubleObjectMaxHeap(int minsize)
minsize - Minimum sizepublic void clear()
DoubleObjectHeapclear in interface DoubleObjectHeap<V>public int size()
DoubleObjectHeapsize in interface DoubleObjectHeap<V>public boolean isEmpty()
DoubleObjectHeapisEmpty in interface DoubleObjectHeap<V>true when the size is 0.public void add(double o,
       V v)
DoubleObjectHeapadd in interface DoubleObjectHeap<V>o - Keyv - Valuepublic void add(double key,
       V val,
       int max)
DoubleObjectHeapadd in interface DoubleObjectHeap<V>key - Keyval - Valuemax - Desired maximum sizepublic void replaceTopElement(double reinsert,
                     V val)
DoubleObjectHeapreplaceTopElement in interface DoubleObjectHeap<V>reinsert - Key of new elementval - Value of new elementprivate void heapifyUp2(int twopos,
              double cur,
              Object val)
twopos - Position in 2-ary heap.cur - Current objectval - Current valueprivate void heapifyUp4(int fourpos,
              double cur,
              Object val)
fourpos - Position in 4-ary heap.cur - Current objectval - Current valuepublic void poll()
DoubleObjectHeappoll in interface DoubleObjectHeap<V>private void heapifyDown(double reinsert,
               Object val)
reinsert - Object to insert.val - Value to reinsert.private void heapifyDown2(int twopos,
                double cur,
                Object val)
twopos - Position in 2-ary heap.cur - Current objectval - Value to reinsert.private void heapifyDown4(int fourpos,
                double cur,
                Object val)
fourpos - Position in 4-ary heap.cur - Current objectval - Value to reinsert.public double peekKey()
DoubleObjectHeappeekKey in interface DoubleObjectHeap<V>public V peekValue()
DoubleObjectHeappeekValue in interface DoubleObjectHeap<V>public DoubleObjectMaxHeap.UnsortedIter unsortedIter()
DoubleObjectHeapunsortedIter in interface DoubleObjectHeap<V>