Main Page   Packages   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

LinkedQueue Class Reference

#include <LinkedQueue.hpp>

List of all members.

Public Methods

__inline LinkedQueue ()
virtual __inline ~LinkedQueue ()
void clear ()
void enqueue (Elem *item)
Elemdequeue ()
__inline ElemfirstValue () const
__inline bool isEmpty () const
__inline bool isFilled () const

Private Attributes

SLinkfront
SLinkrear


Constructor & Destructor Documentation

__inline LinkedQueue::LinkedQueue   [inline]
 

Definition at line 10 of file LinkedQueue.hpp.

00011     : front( NULL ), rear( NULL ) { }

virtual __inline LinkedQueue::~LinkedQueue   [inline, virtual]
 

Definition at line 13 of file LinkedQueue.hpp.

00013                                                       : return link Elems
00014   {
00015     clear();
00016   }


Member Function Documentation

void LinkedQueue::clear  
 

Definition at line 43 of file LinkedQueue.hpp.

00044 {
00045   while( front != NULL )                 // Return link nodes to freelist
00046   {
00047     rear  = front;
00048     front = front->next;
00049     delete rear;
00050   }
00051   rear = NULL;
00052 }

Elem * LinkedQueue::dequeue  
 

Definition at line 67 of file LinkedQueue.hpp.

00068 {
00069   assert( !isEmpty() );                      // Must be something to dequeue
00070 
00071   Elem*    temp = front->element;            // Store dequeued value
00072   SLink*  ltemp = front;                     // Hold onto dequeued link node
00073           front = front->next;               // Advance front
00074 
00075   delete ltemp;                              // Return link to free store
00076 
00077   if ( front == NULL )                       // Dequeued last element
00078   {
00079     rear = NULL;
00080   }
00081 
00082   return temp;                               // Return element value
00083 }

void LinkedQueue::enqueue Elem   item
 

Definition at line 55 of file LinkedQueue.hpp.

00056 {
00057   if ( rear != NULL )                        // Queue not empty: add to end
00058   {
00059     rear = rear->next = new SLink( item, NULL );
00060   } 
00061   else 
00062   {
00063     front = rear = new SLink( item, NULL );    // Empty queue
00064   }
00065 }

__inline Elem* LinkedQueue::firstValue   const [inline]
 

Definition at line 22 of file LinkedQueue.hpp.

00023   {
00024     assert( !isEmpty() );
00025     return front->element;
00026   }

__inline bool LinkedQueue::isEmpty   const [inline]
 

Definition at line 28 of file LinkedQueue.hpp.

00029   {
00030     return front == NULL;
00031   }

__inline bool LinkedQueue::isFilled   const [inline]
 

Definition at line 33 of file LinkedQueue.hpp.

00034   {
00035     return front != NULL;
00036   }


Member Data Documentation

SLink* LinkedQueue::front [private]
 

Definition at line 39 of file LinkedQueue.hpp.

SLink* LinkedQueue::rear [private]
 

Definition at line 40 of file LinkedQueue.hpp.


The documentation for this class was generated from the following file:
Generated on Sun Oct 14 18:49:12 2001 for Standard J2K Library by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001