public class DoubleIntegerMaxHeap extends java.lang.Object implements DoubleIntegerHeap
Modifier and Type | Class and Description |
---|---|
private class |
DoubleIntegerMaxHeap.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 double[] |
twoheap
Base heap.
|
protected int[] |
twovals
Base heap values.
|
Constructor and Description |
---|
DoubleIntegerMaxHeap()
Constructor, with default size.
|
DoubleIntegerMaxHeap(int minsize)
Constructor, with given minimum size.
|
Modifier and Type | Method and Description |
---|---|
void |
add(double o,
int v)
Add a key-value pair to the heap
|
void |
add(double key,
int val,
int max)
Add a key-value pair to the heap if it improves the top.
|
void |
clear()
Clear the heap contents.
|
boolean |
containsKey(double q)
Contains operation for a key (slow: with a linear scan).
|
boolean |
containsValue(int q)
Contains operation for a value (slow: with a linear scan).
|
private void |
heapifyDown(double cur,
int val)
Invoke heapify-down for the root object.
|
private void |
heapifyUp(int twopos,
double cur,
int val)
Heapify-Up method for 2-ary heap.
|
boolean |
isEmpty()
Is the heap empty?
|
double |
peekKey()
Get the current top key.
|
int |
peekValue()
Get the current top value.
|
void |
poll()
Remove the first element.
|
void |
replaceTopElement(double reinsert,
int val)
Combined operation that removes the top element, and inserts a new element instead.
|
int |
size()
Query the size.
|
java.lang.String |
toString() |
DoubleIntegerMaxHeap.UnsortedIter |
unsortedIter()
Get an unsorted iterator to inspect the heap.
|
protected double[] twoheap
protected int[] twovals
protected int size
private static final int TWO_HEAP_INITIAL_SIZE
public DoubleIntegerMaxHeap()
public DoubleIntegerMaxHeap(int minsize)
minsize
- Minimum sizepublic void clear()
DoubleIntegerHeap
clear
in interface DoubleIntegerHeap
public int size()
DoubleIntegerHeap
size
in interface DoubleIntegerHeap
public boolean isEmpty()
DoubleIntegerHeap
isEmpty
in interface DoubleIntegerHeap
true
when the size is 0.public void add(double o, int v)
DoubleIntegerHeap
add
in interface DoubleIntegerHeap
o
- Keyv
- Valuepublic void add(double key, int val, int max)
DoubleIntegerHeap
add
in interface DoubleIntegerHeap
key
- Keyval
- Valuemax
- Desired maximum sizepublic void replaceTopElement(double reinsert, int val)
DoubleIntegerHeap
replaceTopElement
in interface DoubleIntegerHeap
reinsert
- Key of new elementval
- Value of new elementprivate void heapifyUp(int twopos, double cur, int val)
twopos
- Position in 2-ary heap.cur
- Current objectval
- Current valuepublic void poll()
DoubleIntegerHeap
poll
in interface DoubleIntegerHeap
private void heapifyDown(double cur, int val)
cur
- Object to insert.val
- Value to reinsert.public double peekKey()
DoubleIntegerHeap
peekKey
in interface DoubleIntegerHeap
public int peekValue()
DoubleIntegerHeap
peekValue
in interface DoubleIntegerHeap
public boolean containsKey(double q)
DoubleIntegerHeap
containsKey
in interface DoubleIntegerHeap
q
- Keytrue
if the key is contained in the heap.public boolean containsValue(int q)
DoubleIntegerHeap
containsValue
in interface DoubleIntegerHeap
q
- Valuetrue
if the value is contained in the heap.public java.lang.String toString()
toString
in class java.lang.Object
public DoubleIntegerMaxHeap.UnsortedIter unsortedIter()
DoubleIntegerHeap
unsortedIter
in interface DoubleIntegerHeap
Copyright © 2019 ELKI Development Team. License information.