public class IndexedBinaryHeap
extends java.lang.Object
PriorityQueue.
 This exposes the update function which can re-order the queue if any
 internal values are updated.  The difference between this and BinaryHeap is that
 it works solely using indices.  This is to speed up the update procedure.| Modifier and Type | Field and Description | 
|---|---|
| static boolean | DEFAULT_MIN_HEAP | 
| Constructor and Description | 
|---|
| IndexedBinaryHeap(int dataSize,
                 java.util.Comparator<java.lang.Integer> indexedComparator)Creates a minimum  BinaryHeapwith given data capacity/maximum data
 array size | 
| IndexedBinaryHeap(int dataSize,
                 java.util.Comparator<java.lang.Integer> indexedComparator,
                 boolean min)Creates a  BinaryHeapaccording to the supplied parameters | 
| Modifier and Type | Method and Description | 
|---|---|
| boolean | add(int idx)Inserts data element idx into the heap | 
| void | clear() | 
| java.util.Comparator<java.lang.Integer> | comparator()Returns the comparator used to order elements | 
| boolean | isEmpty()Returns whether or not the heap is empty | 
| boolean | isMaxHeap()Returns true if this is a max-heap | 
| boolean | isMinHeap()Returns true if this is a min-heap | 
| int | peek()Looks at the index at the top of the heap, without removing it | 
| int | peekLast()Finds the largest (or smallest) element in the heap for a
 min-(or max-) heap. | 
| int | poll()Retrieves and removes the index of the top element in the heap | 
| int | pollLast()Finds and removes largest (or smallest) element in the heap for a
 min-(or max-) heap. | 
| boolean | remove(int idx)Removes data element at index idx from the heap | 
| void | set(int[] valIdxs)Initializes a heap from an array of data indices | 
| void | setAll()Initializes a heap, adding all entries | 
| int | size()Number of elements in the heap | 
| int[] | toArray() | 
| <T,E> T[] | toArray(T[] a,
       E[] data) | 
| void | update()Re-orders the heap. | 
| void | update(int idx)Adjusts the list starting at entry number idx | 
public static final boolean DEFAULT_MIN_HEAP
public IndexedBinaryHeap(int dataSize,
                         java.util.Comparator<java.lang.Integer> indexedComparator)
BinaryHeap with given data capacity/maximum data
 array sizepublic IndexedBinaryHeap(int dataSize,
                         java.util.Comparator<java.lang.Integer> indexedComparator,
                         boolean min)
BinaryHeap according to the supplied parametersdataSize - the size of the indexed array, [0, dataSize-1]indexedComparator - Comparator to use to compare elementsmin - if true, creates a min-heap, otherwise creates a max-heappublic java.util.Comparator<java.lang.Integer> comparator()
public int size()
public boolean isEmpty()
public int[] toArray()
public <T,E> T[] toArray(T[] a,
                         E[] data)
public boolean add(int idx)
idx - index of the internal data array to add to the heappublic int peek()
public int poll()
public boolean remove(int idx)
idx - index of the element to removepublic int peekLast()
public int pollLast()
public void clear()
public boolean isMinHeap()
public boolean isMaxHeap()
public void update()
public void set(int[] valIdxs)
public void setAll()
public void update(int idx)