structure5
Class VectorHeap<E extends Comparable<E>>

java.lang.Object
  extended by structure5.VectorHeap<E>
All Implemented Interfaces:
PriorityQueue<E>

public class VectorHeap<E extends Comparable<E>>
extends Object
implements PriorityQueue<E>

This class implements a priority queue based on a traditional array-based heap. Most heap operations, including insert and remove, execute in logarithmic time, but the minimum element can be returned in constant time.

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
        VectorHeap programmers = new VectorHeap();

        //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.");
        }
 }
 


Constructor Summary
VectorHeap()
          Construct a new priority queue
VectorHeap(Vector<E> v)
          Construct a new priority queue from an unordered vector
 
Method Summary
 void add(E value)
          Add a value to the priority queue.
 void clear()
          Remove all the elements from the queue.
 E getFirst()
          Fetch lowest valued (highest priority) item from queue.
 boolean isEmpty()
          Determine if the queue is empty.
 E 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
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

VectorHeap

public VectorHeap()
Construct a new priority queue


VectorHeap

public VectorHeap(Vector<E> v)
Construct a new priority queue from an unordered vector

Method Detail

getFirst

public E getFirst()
Fetch lowest valued (highest priority) item from queue.

Specified by:
getFirst in interface PriorityQueue<E extends Comparable<E>>
Returns:
The smallest value from queue.

remove

public E remove()
Returns the minimum value from the queue.

Specified by:
remove in interface PriorityQueue<E extends Comparable<E>>
Returns:
The minimum value in the queue.

add

public void add(E value)
Add a value to the priority queue.

Specified by:
add in interface PriorityQueue<E extends Comparable<E>>
Parameters:
value - The value to be added.

isEmpty

public boolean isEmpty()
Determine if the queue is empty.

Specified by:
isEmpty in interface PriorityQueue<E extends Comparable<E>>
Returns:
True if the queue is empty.

size

public int size()
Determine the size of the queue.

Specified by:
size in interface PriorityQueue<E extends Comparable<E>>
Returns:
The number of elements within the queue.

clear

public void clear()
Remove all the elements from the queue.

Specified by:
clear in interface PriorityQueue<E extends Comparable<E>>

toString

public String toString()
Construct a string representation of the heap.

Overrides:
toString in class Object
Returns:
The string representing the heap.