#include
using namespace std;
template
struct Node
{
DataType data;//数据域
Node *next;//指针域
};
template
class LinkQueue
{
public:
LinkQueue();//初始化空的链队列
~LinkQueue();//释放链队列的存储空间
void enqueue(DataType x);//入队操作,将元素x入队
DataType dequeue();//出队操作,将队头元素出队
DataType gethead();//取链队列的队头元素
int empty();//判断链队列是否为空
private:
Node *front,*rear;//队头和队尾指针
};
template
LinkQueue::LinkQueue()
{
Node *s=nullptr;
s=new Node;s->next=nullptr;
front=rear=s;//将队头指针和队尾指针都指向头结点s
}
template
LinkQueue::~LinkQueue()
{
Node *p=front;
while(front!=nullptr)
{
front=front->next;
delete p;
p=front;
}
}
template
void LinkQueue::enqueue(DataType x)
{
Node *s=