编程语言:C
编译环境:Dev-C++
队列是一种只允许在表的一端(队尾rear)进行插入,而在另一端(队头front)进行删除的线性表
队列类似生活中的排队
队列的链式存储表示:
typedef struct QNode{
ElemType data;
struct QNode *next;
}QNode,*QueuePtr;
typedef struct{
QueuePtr front;//队头指针
QueuePtr rear;//队尾指针
}LinkQueue;
源代码:
//实现书P59 ADT Queue 基本操作9个,用链式存储结构实现
//队列是一种只允许在表的一端(队尾rear)进行插入,而在另一端(队头front)进行删除的线性表
//队列类似生活中的排队
//1.Status InitQueue(LinkQueue &Q) 构造一个空队列Q
// 生成头结点,即队头指针front赋值(QueuePtr)malloc(sizeof(QNode)) 判断是否赋值成功,if(!(*Q).front) exit(OVERFLOW);
// 头结点的指针域指向空,令队尾指针(*Q).rear=(*Q).front;return OK;
//2.Status DestroyQueue(LinkQueue &Q) 销毁队列Q,前提Q存在
// 从队头依次释放空间,具体操作往下看,与单链表的销毁不太一样
//3.Status ClearQueue(LinkQueue *Q) 清空队列Q,前提Q存在
// 令QueuePtr p指向第一个结点(p=(*Q).front->next),借助辅助指针QueuePtr q