#ifndef QUEUE_H_#define QUEUE_H_templateclass Queue{public: Queue(); ~Queue(); bool isEmpyt()const; const T &getFront()const;//返回队首的数据 void enqueue(const T &x);//将数据放入队里 先进先出 T dequeue();//出对 删除队首的数据 void makeEmpyt();//清空整个队列private: struct ListNode { T element; ListNode *next; ListNode(const T &theElement,ListNode *n=0):element(theElement),next(n){} }; ListNode *front; ListNode *back;};/*--------------------------*/template Queue ::Queue(){ front = back = 0;}template Queue ::~Queue(){ makeEmpyt();}template bool Queue ::isEmpyt()const{ return front ==0;}template const T & Queue ::getFront()const{ if(isEmpyt()) std::cerr<<"空队列"; else return front->element;}template void Queue ::enqueue(const T &x){ if(isEmpyt()) back=front = new ListNode(x); else back = back->next = new ListNode(x);}template T Queue ::dequeue(){ T frontItem = getFront(); ListNode *old = front; front = front->next; delete old; return frontItem;}template void Queue ::makeEmpyt(){ while(!isEmpyt()) { dequeue(); }}#endif#include #include "queue.h"using namespace std;int main(){ cout << "测试"<