
K - Key typepublic class ComparatorMinHeap<K> extends Object implements ObjectHeap<K>
| Modifier and Type | Class and Description |
|---|---|
private class |
ComparatorMinHeap.UnsortedIter
Unsorted iterator - in heap order.
|
| Modifier and Type | Field and Description |
|---|---|
protected Comparator<Object> |
comparator
Comparator
|
protected int |
size
Current size of heap.
|
private static int |
TWO_HEAP_INITIAL_SIZE
Initial size of the 2-ary heap.
|
protected Object[] |
twoheap
Base heap.
|
| Constructor and Description |
|---|
ComparatorMinHeap(Comparator<? super K> comparator)
Constructor, with default size.
|
ComparatorMinHeap(int minsize,
Comparator<? super K> comparator)
Constructor, with given minimum size.
|
| Modifier and Type | Method and Description |
|---|---|
void |
add(K o)
Add a key-value pair to the heap
|
void |
add(K 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(Object cur)
Invoke heapify-down for the root object.
|
private void |
heapifyUp(int twopos,
Object cur)
Heapify-Up method for 2-ary heap.
|
boolean |
isEmpty()
Is the heap empty?
|
K |
peek()
Get the current top key
|
K |
poll()
Remove the first element
|
K |
replaceTopElement(K reinsert)
Combined operation that removes the top element, and inserts a new element
instead.
|
int |
size()
Query the size
|
String |
toString() |
ComparatorMinHeap.UnsortedIter |
unsortedIter()
Get an unsorted iterator to inspect the heap.
|
protected Object[] twoheap
protected int size
private static final int TWO_HEAP_INITIAL_SIZE
protected Comparator<Object> comparator
public ComparatorMinHeap(Comparator<? super K> comparator)
comparator - Comparatorpublic ComparatorMinHeap(int minsize,
Comparator<? super K> comparator)
minsize - Minimum sizecomparator - Comparatorpublic void clear()
ObjectHeapclear in interface ObjectHeap<K>public int size()
ObjectHeapsize in interface ObjectHeap<K>public boolean isEmpty()
ObjectHeapisEmpty in interface ObjectHeap<K>true when the size is 0.public void add(K o)
ObjectHeapadd in interface ObjectHeap<K>o - Keypublic void add(K key, int max)
ObjectHeapadd in interface ObjectHeap<K>key - Keymax - Maximum size of heappublic K replaceTopElement(K reinsert)
ObjectHeapreplaceTopElement in interface ObjectHeap<K>reinsert - New element to insertprivate void heapifyUp(int twopos,
Object cur)
twopos - Position in 2-ary heap.cur - Current objectpublic K poll()
ObjectHeappoll in interface ObjectHeap<K>private void heapifyDown(Object cur)
cur - Object to insert.public K peek()
ObjectHeappeek in interface ObjectHeap<K>public ComparatorMinHeap.UnsortedIter unsortedIter()
ObjectHeapunsortedIter in interface ObjectHeap<K>