
public class IntegerMaxHeap extends Object implements IntegerHeap
| Modifier and Type | Class and Description |
|---|---|
private class |
IntegerMaxHeap.UnsortedIter
Unsorted iterator - in heap order.
|
| Modifier and Type | Field and Description |
|---|---|
protected int |
size
Current size of heap.
|
private static int |
TWO_HEAP_INITIAL_SIZE
Initial size of the 2-ary heap.
|
protected int[] |
twoheap
Base heap.
|
| Constructor and Description |
|---|
IntegerMaxHeap()
Constructor, with default size.
|
IntegerMaxHeap(int minsize)
Constructor, with given minimum size.
|
| Modifier and Type | Method and Description |
|---|---|
void |
add(int o)
Add a key-value pair to the heap
|
void |
add(int key,
int max)
Add a key-value pair to the heap, except if the new element is larger than
the top, and we are at design size (overflow)
|
void |
clear()
Delete all elements from the heap.
|
private void |
heapifyDown(int cur)
Invoke heapify-down for the root object.
|
private void |
heapifyUp(int twopos,
int cur)
Heapify-Up method for 2-ary heap.
|
boolean |
isEmpty()
Is the heap empty?
|
int |
peek()
Get the current top key
|
int |
poll()
Remove the first element
|
int |
replaceTopElement(int reinsert)
Combined operation that removes the top element, and inserts a new element
instead.
|
int |
size()
Query the size
|
String |
toString() |
IntegerMaxHeap.UnsortedIter |
unsortedIter()
Get an unsorted iterator to inspect the heap.
|
protected int[] twoheap
protected int size
private static final int TWO_HEAP_INITIAL_SIZE
public IntegerMaxHeap()
public IntegerMaxHeap(int minsize)
minsize - Minimum sizepublic void clear()
IntegerHeapclear in interface IntegerHeappublic int size()
IntegerHeapsize in interface IntegerHeappublic boolean isEmpty()
IntegerHeapisEmpty in interface IntegerHeaptrue when the size is 0.public void add(int o)
IntegerHeapadd in interface IntegerHeapo - Keypublic void add(int key,
int max)
IntegerHeapadd in interface IntegerHeapkey - Keymax - Maximum size of heappublic int replaceTopElement(int reinsert)
IntegerHeapreplaceTopElement in interface IntegerHeapreinsert - New element to insertprivate void heapifyUp(int twopos,
int cur)
twopos - Position in 2-ary heap.cur - Current objectpublic int poll()
IntegerHeappoll in interface IntegerHeapprivate void heapifyDown(int cur)
cur - Object to insert.public int peek()
IntegerHeappeek in interface IntegerHeappublic IntegerMaxHeap.UnsortedIter unsortedIter()
IntegerHeapunsortedIter in interface IntegerHeap