
E - Element type. Should be Comparable or a
        Comparator needs to be given.public class Heap<E> extends Object
PriorityQueue, but here we can override methods to obtain
 e.g. a TopBoundedHeap
 
 Additionally, this heap is built lazily: if you first add many elements, then
 poll the heap, it will be bulk-loaded in O(n) instead of iteratively built in
 O(n log n). This is implemented via a simple validTo counter.| Modifier and Type | Class and Description | 
|---|---|
class  | 
Heap.UnorderedIter
Heap iterator. 
 | 
| Modifier and Type | Field and Description | 
|---|---|
protected Comparator<Object> | 
comparator
The comparator or  
null. | 
private static int | 
DEFAULT_INITIAL_CAPACITY
Default initial capacity. 
 | 
private int | 
modCount
(Structural) modification counter. 
 | 
protected Object[] | 
queue
Heap storage. 
 | 
protected int | 
size
Current number of objects. 
 | 
| Constructor and Description | 
|---|
Heap()
Default constructor: default capacity, natural ordering. 
 | 
Heap(Comparator<? super E> comparator)
Constructor with  
Comparator. | 
Heap(int size)
Constructor with initial capacity, natural ordering. 
 | 
Heap(int size,
    Comparator<? super E> comparator)
Constructor with initial capacity and  
Comparator. | 
| Modifier and Type | Method and Description | 
|---|---|
void | 
add(E e)
Add an element to the heap. 
 | 
protected String | 
checkHeap()
Test whether the heap is still valid. 
 | 
void | 
clear()
Clear the heap. 
 | 
protected boolean | 
heapifyDown(int pos,
           Object reinsert)
Execute a "Heapify Downwards" aka "SiftDown". 
 | 
protected boolean | 
heapifyDownComparable(int ipos,
                     Object reinsert)
Execute a "Heapify Downwards" aka "SiftDown". 
 | 
protected boolean | 
heapifyDownComparator(int ipos,
                     Object cur)
Execute a "Heapify Downwards" aka "SiftDown". 
 | 
protected void | 
heapifyUp(int pos,
         E elem)
Execute a "Heapify Upwards" aka "SiftUp". 
 | 
protected void | 
heapifyUpComparable(int pos,
                   Object elem)
Execute a "Heapify Upwards" aka "SiftUp". 
 | 
protected void | 
heapifyUpComparator(int pos,
                   Object cur)
Execute a "Heapify Upwards" aka "SiftUp". 
 | 
protected void | 
heapModified()
Called at the end of each heap modification. 
 | 
boolean | 
isEmpty()
Test for emptiness. 
 | 
E | 
peek()
Peek at the top element. 
 | 
E | 
poll()
Remove the top element. 
 | 
protected E | 
removeAt(int pos)
Remove the element at the given position. 
 | 
E | 
replaceTopElement(E e)
Combined operation that removes the top element, and inserts a new element
 instead. 
 | 
protected void | 
resize(int requiredSize)
Test whether we need to resize to have the requested capacity. 
 | 
int | 
size()
Get the heap size. 
 | 
Heap.UnorderedIter | 
unorderedIter()
Get an unordered heap iterator. 
 | 
protected Object[] queue
protected int size
protected final Comparator<Object> comparator
null.private int modCount
private static final int DEFAULT_INITIAL_CAPACITY
public Heap()
public Heap(int size)
size - initial sizepublic Heap(Comparator<? super E> comparator)
Comparator.comparator - Comparatorpublic Heap(int size,
    Comparator<? super E> comparator)
Comparator.size - initial capacitycomparator - Comparatorpublic void add(E e)
e - Element to addpublic E replaceTopElement(E e)
e - New element to insertpublic E peek()
public E poll()
protected E removeAt(int pos)
pos - Element position.protected void heapifyUp(int pos,
             E elem)
pos - insertion positionelem - Element to insertprotected void heapifyUpComparable(int pos,
                       Object elem)
pos - insertion positionelem - Element to insertprotected void heapifyUpComparator(int pos,
                       Object cur)
pos - insertion positioncur - Element to insertprotected boolean heapifyDown(int pos,
                  Object reinsert)
pos - re-insertion positionreinsert - Object to reinsertprotected boolean heapifyDownComparable(int ipos,
                            Object reinsert)
ipos - re-insertion positionreinsert - Object to reinsertprotected boolean heapifyDownComparator(int ipos,
                            Object cur)
ipos - re-insertion positioncur - Object to reinsertpublic int size()
public boolean isEmpty()
protected final void resize(int requiredSize)
requiredSize - required capacitypublic void clear()
protected void heapModified()
public Heap.UnorderedIter unorderedIter()
protected String checkHeap()
null when the heap is correct