|
© 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 = new SkewHeap();
//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 PriorityQueuepublic Comparable remove()
remove in interface PriorityQueuepublic void add(Comparable value)
add in interface PriorityQueuevalue - The value to be added.public int size()
size in interface PriorityQueuepublic void clear()
clear in interface PriorityQueuepublic boolean isEmpty()
isEmpty in interface PriorityQueuepublic void merge(MergeableHeap otherHeap)
merge in interface MergeableHeapotherHeap - 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 Objectpublic 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 | |||||||