|
© 1998-2002 McGraw-Hill | |||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--structure.SkewHeap
An implementation of a priority queue using skew heaps. Skew heaps allow one to construct heaps dynamically without explictly balancing the heaps. Main operation is a merge. Most operations execute in amortized logarithmic time, but individual operations may take linear time to execute in the worst case.
Example usage:
To print out a list of programmers sorted by age we could use the following:
public static void main(String[] argv){ //initialize a new fib heap SkewHeap programmers = newSkewHeap()
; //add programmers and their ages to heap //ages current of 7/22/2002 //add programmers and their ages to heap //ages current of 7/22/2002 programmers.add(new ComparableAssociation(new Integer(22), "Evan"))
; programmers.add(new ComparableAssociation(new Integer(19), "Chris")); programmers.add(new ComparableAssociation(new Integer(20), "Shimon")); programmers.add(new ComparableAssociation(new Integer(21), "Diane")); programmers.add(new ComparableAssociation(new Integer(21), "Lida")); programmers.add(new ComparableAssociation(new Integer(20), "Rob")); programmers.add(new ComparableAssociation(new Integer(20), "Sean")); //print out programmers while(!programmers.isEmpty()
){ ComparableAssociation p = (ComparableAssociation)programmers.remove()
; System.out.println(p.getValue() + " is " + p.getKey() + " years old."); } }
Field Summary | |
protected int |
count
The number of nodes within heap. |
protected BinaryTree |
root
The root of the skew heap. |
Constructor Summary | |
SkewHeap()
Constructs an empty priority queue. |
Method Summary | |
void |
add(Comparable value)
Add a value to the priority queue. |
void |
clear()
Remove all the elements from the queue. |
Comparable |
getFirst()
Fetch lowest valued (highest priority) item from queue. |
boolean |
isEmpty()
Determine if the queue is empty. |
static void |
main(String[] argv)
|
protected static BinaryTree |
merge(BinaryTree left,
BinaryTree right)
|
void |
merge(MergeableHeap otherHeap)
Merge this heap with another |
Comparable |
remove()
Returns the minimum value from the queue. |
int |
size()
Determine the size of the queue. |
String |
toString()
Construct a string representation of the heap. |
Methods inherited from class java.lang.Object |
|
Field Detail |
protected BinaryTree root
protected int count
Constructor Detail |
public SkewHeap()
Method Detail |
public Comparable getFirst()
getFirst
in interface PriorityQueue
public Comparable remove()
remove
in interface PriorityQueue
public void add(Comparable value)
add
in interface PriorityQueue
value
- The value to be added.public int size()
size
in interface PriorityQueue
public void clear()
clear
in interface PriorityQueue
public boolean isEmpty()
isEmpty
in interface PriorityQueue
public void merge(MergeableHeap otherHeap)
merge
in interface MergeableHeap
otherHeap
- Heap to be merged with this heap, otherHeap
is destroyed by this operation;protected static BinaryTree merge(BinaryTree left, BinaryTree right)
public String toString()
toString
in class Object
public static void main(String[] argv)
|
© 1998-2002 McGraw-Hill | |||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |