© 1998-2002 McGraw-Hill

structure
Class QueueArray

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

public class QueueArray
extends AbstractQueue
implements Queue

An implementation of queues based on arrays. The head of the queue starts out at the head of the array, allowing the queue to grow and shrink in constant time. This queue implementation is ideal for applications that require a queue with a known maximum size that expands in constant time.

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)
 {
     int charsInInput = QueueExample.countChars(argument);
     QueueArray q = new QueueArray(charsInInput);
     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:
QueueList, QueueVector

Field Summary
protected  int count
          current size of queue
protected  Object[] data
          The references to values stored within the queue.
protected  int head
          index of the head of queue.
 
Constructor Summary
QueueArray(int size)
          Construct a queue holding at most size elements.
 
Method Summary
 void add(Object value)
          Add a value to the tail of the queue.
 void clear()
          Remove all the values from the queue.
 Object get()
          Fetch the value at the head of the queue.
 boolean isEmpty()
          Determine if the queue is empty.
 boolean isFull()
          Determines if the queue is not able to accept any new values.
 Iterator iterator()
          Returns an iterator for traversing the structure.
 Object remove()
          Remove a value from the head of the queue.
 int size()
          Determine the number of elements within the queue
 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, registerNatives, 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 Object[] data
The references to values stored within the queue.

head

protected int head
index of the head of queue.

count

protected int count
current size of queue
Constructor Detail

QueueArray

public QueueArray(int size)
Construct a queue holding at most size elements.
Parameters:
size - The maximum size of the queue.
Method Detail

add

public void add(Object value)
Add a value to the tail of the queue.
Specified by:
add in interface Queue
Parameters:
value - The value added.
Precondition:
the queue is not full
Postcondition:
the value is added to the tail of the structure
See Also:
AbstractQueue.enqueue(java.lang.Object)

remove

public Object remove()
Remove a value from the head of the queue.
Specified by:
remove in interface Queue
Precondition:
the queue is not empty
Postcondition:
the head of the queue is removed and returned
Returns:
The value actually removed.
See Also:
AbstractQueue.dequeue()

get

public Object get()
Fetch the value at the head of the queue.
Specified by:
get in interface Queue
Precondition:
the queue is not empty
Postcondition:
the element at the head of the queue is returned
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
Postcondition:
returns the number of elements in the 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
Postcondition:
removes all elements from the queue

isFull

public boolean isFull()
Determines if the queue is not able to accept any new values.
Postcondition:
returns true if the queue is at its capacity
Returns:
True iff the queue is full.

isEmpty

public boolean isEmpty()
Determine if the queue is empty.
Specified by:
isEmpty in interface Structure
Overrides:
isEmpty in class AbstractStructure
Postcondition:
returns true iff the queue is empty
Returns:
True iff the queue is empty.

iterator

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

toString

public String toString()
Construct a string representation of the queue.
Overrides:
toString in class Object
Postcondition:
returns string representation of queue
Returns:
String representing the queue.

© 1998-2002 McGraw-Hill