Package EDU.oswego.cs.dl.util.concurrent
Class Heap
- java.lang.Object
-
- EDU.oswego.cs.dl.util.concurrent.Heap
-
public class Heap extends java.lang.Object
A heap-based priority queue, without any concurrency control (i.e., no blocking on empty/full states). This class provides the data structure mechanics for BoundedPriorityQueue.The class currently uses a standard array-based heap, as described in, for example, Sedgewick's Algorithms text. All methods are fully synchronized. In the future, it may instead use structures permitting finer-grained locking.
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clear()
remove all elementsprotected int
compare(java.lang.Object a, java.lang.Object b)
perform element comaprisons using comparator or natural orderingjava.lang.Object
extract()
Return and remove least element, or null if emptyvoid
insert(java.lang.Object x)
insert an element, resize if necessaryprotected int
left(int k)
protected int
parent(int k)
java.lang.Object
peek()
Return least element without removing it, or null if emptyprotected int
right(int k)
int
size()
Return number of elements
-
-
-
Constructor Detail
-
Heap
public Heap(int capacity, java.util.Comparator cmp) throws java.lang.IllegalArgumentException
Create a Heap with the given initial capacity and comparator- Throws:
java.lang.IllegalArgumentException
- if capacity less or equal to zero
-
Heap
public Heap(int capacity)
Create a Heap with the given capacity, and relying on natural ordering.
-
-
Method Detail
-
compare
protected int compare(java.lang.Object a, java.lang.Object b)
perform element comaprisons using comparator or natural ordering
-
parent
protected final int parent(int k)
-
left
protected final int left(int k)
-
right
protected final int right(int k)
-
insert
public void insert(java.lang.Object x)
insert an element, resize if necessary
-
extract
public java.lang.Object extract()
Return and remove least element, or null if empty
-
peek
public java.lang.Object peek()
Return least element without removing it, or null if empty
-
size
public int size()
Return number of elements
-
clear
public void clear()
remove all elements
-
-