#ifndef QUEUE_H #define QUEUE_H template class QueueNode { public: QueueNode(); QueueNode(C item, QueueNode* n = 0); QueueNode* GetNext(); C& GetItem(); void SetNext(QueueNode* n); void SetItem(C item); private: QueueNode* next; C data; }; template class Queue { public: Queue(); void Dump(); void Enqueue(C item); C Dequeue(); C& Peek(); bool Empty(); ~Queue(); private: QueueNode* head; QueueNode* tail; }; #include "Queue.cpp" #endif