#include <LinkedQueue.hpp>
Public Methods | |
__inline | LinkedQueue () |
virtual __inline | ~LinkedQueue () |
void | clear () |
void | enqueue (Elem *item) |
Elem * | dequeue () |
__inline Elem * | firstValue () const |
__inline bool | isEmpty () const |
__inline bool | isFilled () const |
Private Attributes | |
SLink * | front |
SLink * | rear |
|
Definition at line 10 of file LinkedQueue.hpp. |
|
Definition at line 13 of file LinkedQueue.hpp. |
|
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 } |
|
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 } |
|
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 } |
|
Definition at line 22 of file LinkedQueue.hpp. |
|
Definition at line 28 of file LinkedQueue.hpp. 00029 { 00030 return front == NULL; 00031 } |
|
Definition at line 33 of file LinkedQueue.hpp. 00034 { 00035 return front != NULL; 00036 } |
|
Definition at line 39 of file LinkedQueue.hpp. |
|
Definition at line 40 of file LinkedQueue.hpp. |