创建一个链式队列,能够完成队列的初始化、入队、出队、获取队首和队尾元素、销毁队列等操作。
队列结构(队列含头结点)定义如下:
typedef int Elemtype;
typedef struct Node//队列元素
{
Elemtype data;//数据域
struct Node *next;//指向下一个元素
}QNode;
typedef struct//队列
{
QNode *front;//队列头结点
QNode *tail;//指向队尾元素
}LinkQueue;
部分代码已经给出,请补充完整,提交时请勿包含已经给出的代码。
C++
void InitQueue(LinkQueue &q)
{
q.front = (QNode*)malloc(sizeof(QNode));
q.front->next=NULL;
q.tail = q.front;
}
void Destroy(LinkQueue &q)
{
QNode *p = q.front, *t;
while(p)
{
t = p;
p = p->next;
free(t);
}