//将使用到MyList.h头文件 #ifndef MYQUEUE_H #define MYQUEUE_H #include "MyList.h" template<class T> class MyQueue:private List<T> { public: void DestoryQueue(); //销毁队列 void ClearQueue(); //清除队列元素 bool QueueEmpty() const; //判断队列是否为空 int QueueLength() const; //返回队列长度 T& GetHead() const; //返回队头元素 bool EnQueue(T val); //在队尾插入val bool DeQueue(T& val); //删除队头元素 void PrintQueue() const; //打印队列元素 }; template<class T> void MyQueue<T>::DestoryQueue() { DestoryList(); } template<class T> void MyQueue<T>::ClearQueue() { ClearList(); } template<class T> bool MyQueue<T>::QueueEmpty() const { return ListEmpty(); } template<class T> int MyQueue<T>::QueueLength() const { return ListLength(); } template<class T> T& MyQueue<T>::GetHead() const { return GetElem(1); } template<class T> bool MyQueue<T>::EnQueue(T val) { int i=ListLength(); return ListInsert(i+1,val); } template<class T> bool MyQueue<T>::DeQueue(T& val) { return ListDelete(1,val); } template<class T> void MyQueue<T>::PrintQueue() const { PrintList(); } #endif #include <iostream> #include "MyQueue.h" using namespace std; int main() { MyQueue<int> q; int del_val=0; cout<<"入队列:"; for(int i=1;i<=10;i++) { cout<<i<<" "; q.EnQueue(i); } cout<<"出队列:"; while(!q.QueueEmpty()) { q.DeQueue(del_val); cout<<del_val<<" "; } cout<<endl; return 0; }