Class DoubleMaxHeap
- java.lang.Object
-
- elki.utilities.datastructures.heap.DoubleMaxHeap
-
- All Implemented Interfaces:
DoubleHeap
public class DoubleMaxHeap extends java.lang.Object implements DoubleHeap
Binary heap for primitive types.This class is generated from a template.
- Since:
- 0.6.0
- Author:
- Erich Schubert
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private classDoubleMaxHeap.UnsortedIterUnsorted iterator - in heap order.
-
Field Summary
Fields Modifier and Type Field Description protected intsizeCurrent size of heap.private static intTWO_HEAP_INITIAL_SIZEInitial size of the 2-ary heap.protected double[]twoheapBase heap.
-
Constructor Summary
Constructors Constructor Description DoubleMaxHeap()Constructor, with default size.DoubleMaxHeap(int minsize)Constructor, with given minimum size.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(double o)Add a key-value pair to the heapvoidadd(double 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)voidclear()Delete all elements from the heap.private voidheapifyDown(double cur)Invoke heapify-down for the root object.private voidheapifyUp(int twopos, double cur)Heapify-Up method for 2-ary heap.booleanisEmpty()Is the heap empty?doublepeek()Get the current top keydoublepoll()Remove the first elementdoublereplaceTopElement(double reinsert)Combined operation that removes the top element, and inserts a new element instead.intsize()Query the sizejava.lang.StringtoString()DoubleMaxHeap.UnsortedIterunsortedIter()Get an unsorted iterator to inspect the heap.
-
-
-
Field Detail
-
twoheap
protected double[] twoheap
Base heap.
-
size
protected int size
Current size of heap.
-
TWO_HEAP_INITIAL_SIZE
private static final int TWO_HEAP_INITIAL_SIZE
Initial size of the 2-ary heap.- See Also:
- Constant Field Values
-
-
Method Detail
-
clear
public void clear()
Description copied from interface:DoubleHeapDelete all elements from the heap.- Specified by:
clearin interfaceDoubleHeap
-
size
public int size()
Description copied from interface:DoubleHeapQuery the size- Specified by:
sizein interfaceDoubleHeap- Returns:
- Size
-
isEmpty
public boolean isEmpty()
Description copied from interface:DoubleHeapIs the heap empty?- Specified by:
isEmptyin interfaceDoubleHeap- Returns:
truewhen the size is 0.
-
add
public void add(double o)
Description copied from interface:DoubleHeapAdd a key-value pair to the heap- Specified by:
addin interfaceDoubleHeap- Parameters:
o- Key
-
add
public void add(double key, int max)Description copied from interface:DoubleHeapAdd a key-value pair to the heap, except if the new element is larger than the top, and we are at design size (overflow)- Specified by:
addin interfaceDoubleHeap- Parameters:
key- Keymax- Maximum size of heap
-
replaceTopElement
public double replaceTopElement(double reinsert)
Description copied from interface:DoubleHeapCombined operation that removes the top element, and inserts a new element instead.- Specified by:
replaceTopElementin interfaceDoubleHeap- Parameters:
reinsert- New element to insert- Returns:
- Previous top element of the heap
-
heapifyUp
private void heapifyUp(int twopos, double cur)Heapify-Up method for 2-ary heap.- Parameters:
twopos- Position in 2-ary heap.cur- Current object
-
poll
public double poll()
Description copied from interface:DoubleHeapRemove the first element- Specified by:
pollin interfaceDoubleHeap- Returns:
- Top element
-
heapifyDown
private void heapifyDown(double cur)
Invoke heapify-down for the root object.- Parameters:
cur- Object to insert.
-
peek
public double peek()
Description copied from interface:DoubleHeapGet the current top key- Specified by:
peekin interfaceDoubleHeap- Returns:
- Top key
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
unsortedIter
public DoubleMaxHeap.UnsortedIter unsortedIter()
Description copied from interface:DoubleHeapGet an unsorted iterator to inspect the heap.- Specified by:
unsortedIterin interfaceDoubleHeap- Returns:
- Iterator
-
-