structure
Class QueueVector

java.lang.Object
  |
  +--structure.AbstractStructure
        |
        +--structure.AbstractLinear
              |
              +--structure.AbstractQueue
                    |
                    +--structure.QueueVector
All Implemented Interfaces:
Linear, Queue, Structure

public class QueueVector
extends AbstractQueue
implements Queue

An implementation of queues based on vectors. The head of the queue is stored at the head of the list, allowing the queue to grow and shrink in constant time. This queue implementation is ideal for applications that require a dynamically resizable queue which occasionally takes a time proportional to the its length to expand.

Example usage:

To compute the sum of the unicode value of every character in the standard input we could use the following:

 public static void main(String[] arguments)
 {
     QueueVector q = new QueueVector();
     int unicodeSum = 0;

     if(arguments.length > 0){
         for(int i=0; i < arguments.length; i++){
	       for(int j=0; j < arguments[i].length(); j++){
		   q.enqueue(new Character(arguments[i].charAt(j)));
	       }
	   }
     }

     while(!q.AbstractLinear.empty()){
	  char c = ((Character)q.AbstractQueue.dequeue()).charValue();
	  unicodeSum+=Character.getNumericValue(c);
     }

     System.out.println("Total Value: " + unicodeSum);
 }
 

See Also:
QueueArray, QueueList

Field Summary
protected  Vector data
          The vector that maintains the queue data
 
Constructor Summary
QueueVector()
          Construct an empty queue
QueueVector(int size)
          Constructs an empty queue with an initial allocation of size.
 
Method Summary
 void add(java.lang.Object value)
          Add a value to the tail of the queue
 void clear()
          Remove all the values from the queue.
 java.lang.Object get()
          Fetch the value at the head of the queue.
 boolean isEmpty()
          Determine if the queue is empty.
 java.util.Iterator iterator()
          Returns an iterator for traversing the structure.
 java.lang.Object remove()
          Remove a value from the head of the queue
 int size()
          Determine the number of elements within the queue.
 java.lang.String toString()
          Construct a string representation of the queue.
 
Methods inherited from class structure.AbstractQueue
dequeue, enqueue, getFirst, peek
 
Methods inherited from class structure.AbstractLinear
empty, remove
 
Methods inherited from class structure.AbstractStructure
contains, elements, hashCode, values
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface structure.Queue
dequeue, empty, enqueue, getFirst, peek
 
Methods inherited from interface structure.Structure
contains, elements, remove, values
 

Field Detail

data

protected Vector data
The vector that maintains the queue data

Constructor Detail

QueueVector

public QueueVector()
Construct an empty queue


QueueVector

public QueueVector(int size)
Constructs an empty queue with an initial allocation of size.

Parameters:
size - Approximate largest queue size needed.
Method Detail

add

public void add(java.lang.Object value)
Add a value to the tail of the queue

Specified by:
add in interface Queue
Parameters:
value - The value added.
See Also:
Queue.enqueue(java.lang.Object)

remove

public java.lang.Object remove()
Remove a value from the head of the queue

Specified by:
remove in interface Queue
Returns:
The value actually removed.
See Also:
AbstractQueue.dequeue()

get

public java.lang.Object get()
Fetch the value at the head of the queue.

Specified by:
get in interface Queue
Returns:
Reference to the first value of the queue.

size

public int size()
Determine the number of elements within the queue.

Specified by:
size in interface Queue
Returns:
The number of elements within the queue.

clear

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

Specified by:
clear in interface Structure

isEmpty

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

Specified by:
isEmpty in interface Structure
Overrides:
isEmpty in class AbstractStructure
Returns:
True iff the queue is empty.

iterator

public java.util.Iterator iterator()
Description copied from interface: Structure
Returns an iterator for traversing the structure.

Specified by:
iterator in interface Structure
Returns:
an iterator for traversing the structure
See Also:
AbstractIterator, Iterator, Enumeration, Structure.elements()

toString

public java.lang.String toString()
Construct a string representation of the queue.

Overrides:
toString in class java.lang.Object
Returns:
String representing the queue.