#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. |
1.2.11.1 written by Dimitri van Heesch,
© 1997-2001