#include template< class Type > class QueueItem { protected: QueueItem< Type> * next; QueueItem< Type> * prev; Type data; public: QueueItem(); QueueItem(Type data1); QueueItem< Type> * Add(QueueItem< Type> * item1); QueueItem< Type> * OrdAdd(QueueItem< int> * item1); QueueItem< Type> * Insert(QueueItem< Type> * item1); QueueItem< Type> * OrderlyInsert(QueueItem< Type> * item1); QueueItem< Type> * First() { if (prev) return prev->First(); else return this; } QueueItem< Type> * Delete() { if (next) { if (next->next) { next->Delete(); } delete next; } } void Print() { cout << data << ' '; if (next) next->Print(); } };