//---------------------------------------------------------------------------- // // FILE : queue.h // AUTHOR : Eugene Wallingford // CREATION DATE : April 3, 1997 // //---------------------------------------------------------------------------- // // MODIFIED BY : // DATE : // DESCRIPTION : // //---------------------------------------------------------------------------- //------------------------------------------------------------------------ // CLASS : QueueNode // DESCRIPTION : Instances of this class are stored in Queues //------------------------------------------------------------------------ template < class QE > class QueueNode { public: QueueNode(QE, QueueNode < QE > *); QE data; QueueNode < QE > * next; }; //------------------------------------------------------------------------ // CLASS : Queue // DESCRIPTION : Standard Queue interface //------------------------------------------------------------------------ template < class QE > class Queue { public: Queue(int maxSize = 10); // constructor takes initial size ~Queue(); // destructor kills ring buffer nodes void enqueue(QE e); QE dequeue(); QE front (); int isEmpty(); int isFull (); private: QueueNode < QE > * lastFree; // just before first in line QueueNode < QE > * lastFilled; // last in line };