m865.datastructures
Class QueueLL

java.lang.Object
  extended bym865.datastructures.AbstractQueue
      extended bym865.datastructures.QueueLL
All Implemented Interfaces:
java.lang.Cloneable, java.util.Collection

public class QueueLL
extends AbstractQueue

This class implements a Queue using a simple Linked List.

Version:
2.0 09/17/04
Author:
Daniel D. Warner

Nested Class Summary
protected  class QueueLL.Link
          The Linked List is built from a simple forward link.
 class QueueLL.QueueLLIterator
          An iterator for a QueueLL.
 
Field Summary
protected  QueueLL.Link back
          This link points to the back of the Linked List.
protected  QueueLL.Link front
          This link points to the front of the Linked List.
 
Fields inherited from class m865.datastructures.AbstractQueue
hash
 
Constructor Summary
  QueueLL()
          Constructs a queue which uses a simple Linked List.
  QueueLL(java.util.Collection c)
          Constructs a queue which is initialized with the objects in the specified collection
protected QueueLL(int hash, QueueLL.Link front, QueueLL.Link back)
          Constructs a queue with a specified hash code and a clone of the specified ArrayList.
 
Method Summary
 void clear()
          Removes all the objects from this queue.
 java.lang.Object clone()
          The Cloneable Interface indicates that the clone method, which is inherited from Object, is implemented so that a true clone (a true and independent copy) of the object is returned.
 java.lang.Object dequeue()
          Removes and returns the object at the beginning of the queue.
 void enqueue(java.lang.Object obj)
          Appends an object to the end of the queue.
 boolean isEmpty()
          Determines whether the queue is empty.
 java.util.Iterator iterator()
          A factory method which returns an Iterator to the collection in this queue.
static void main(java.lang.String[] args)
          This main method tests the QueueLL class to insure that the elementary functions are correct.
 java.lang.Object peek()
          Returns the object at the beginning of the queue.
 int size()
          Determines the size of this queue.
 java.lang.String toString()
          List the objects in the queue
 
Methods inherited from class m865.datastructures.AbstractQueue
add, addAll, contains, containsAll, downdateHashCode, equals, hashCode, remove, removeAll, retainAll, toArray, toArray, updateHashCode
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

front

protected QueueLL.Link front
This link points to the front of the Linked List.


back

protected QueueLL.Link back
This link points to the back of the Linked List.

Constructor Detail

QueueLL

public QueueLL()
Constructs a queue which uses a simple Linked List.


QueueLL

public QueueLL(java.util.Collection c)
Constructs a queue which is initialized with the objects in the specified collection

Parameters:
c - the collection of objects to be initially enqueued onto this queue.

QueueLL

protected QueueLL(int hash,
                  QueueLL.Link front,
                  QueueLL.Link back)
Constructs a queue with a specified hash code and a clone of the specified ArrayList. This constuctor is only for use within the class and its subclasses.

Parameters:
hash - the hash code
front - the link to the front of the linked list queue.
back - the link to the back of the linked list queue.
Method Detail

enqueue

public void enqueue(java.lang.Object obj)
Appends an object to the end of the queue.

Specified by:
enqueue in class AbstractQueue
Parameters:
obj - the object to be appended to the end of the queue.

dequeue

public java.lang.Object dequeue()
Removes and returns the object at the beginning of the queue.

Specified by:
dequeue in class AbstractQueue
Returns:
the object at the beginning of the queue or null if the queue is empty.

peek

public java.lang.Object peek()
Returns the object at the beginning of the queue. The queue remains unchanged.

Specified by:
peek in class AbstractQueue
Returns:
the object at the beginning of the queue or null if the queue is empty.

clear

public void clear()
Removes all the objects from this queue. This is one of the optional operations specified by the Collection Interface


clone

public java.lang.Object clone()
The Cloneable Interface indicates that the clone method, which is inherited from Object, is implemented so that a true clone (a true and independent copy) of the object is returned.

Returns:
a clone (a true and independent copy) of this queue.

isEmpty

public boolean isEmpty()
Determines whether the queue is empty.

Specified by:
isEmpty in interface java.util.Collection
Overrides:
isEmpty in class AbstractQueue
Returns:
true - if this collection contains no elements.

iterator

public java.util.Iterator iterator()
A factory method which returns an Iterator to the collection in this queue. This iterator will walk throught the queue from the top to the bottom. It will throw a ConcurrentModificationException if the queue is altered during the iteration.

Returns:
a QueueLLIterator which will iterate through this queue from front to back

size

public int size()
Determines the size of this queue.

Returns:
the number of objects in this queue.

toString

public java.lang.String toString()
List the objects in the queue

Overrides:
toString in class AbstractQueue
Returns:
a formatted string listing the objects in this queue

main

public static void main(java.lang.String[] args)
This main method tests the QueueLL class to insure that the elementary functions are correct.

Parameters:
args - optional command line arguments which will be ignored.