用于笔记
目录
队列的存储结构——顺序队列、循环队列(顺序循环队列、链循环队列)
第二种存储结构:循环队列——链循环队列的表示【初始状态下指针指向 头结点】
3.3 队列( Queue)
队列是一种先进先出(FIFO)的线性表.在表一端插入,在另一端删除。
(1)定义
只能在表的一端(队尾)进行插入,在另一端(队头)进行副除运算的线性表
(2)逻辑结构
与线性表相同,仍为一对一关系
(3)存储结构
用顺序队列或链队存储均可
(4)运算规则
先进先出(FIFO)
(5)主要操作
入队和出队函数,具体实现依顺序队或链队的不同而不同
⭐栈、队列与一般线性表的区别
队列的表示和操作的实现
例题引入:提示,出队顺序就是出栈顺序
栈的容量S:
队头 队尾
队列有头指针front 尾指针rear
队列的存储结构——顺序队列、循环队列(顺序循环队列、链循环队列)
第一种存储结构——顺序队列的表示
问题:假溢出
假溢出——解决方案:
问题:队空队满的情况是一样的
队空队满情况一致解决方案
第二种存储结构:循环队列——顺序循环队列的表示
基本操作:
循环队列的初始化
基本操作:
(1)实际长度
(2)最大长度
(3)循环队列为空
(4)循环队列为满
(5)循环队列入队
(6)循环队列出队
第二种存储结构:循环队列——链循环队列的表示【初始状态下指针指向 头结点】
首元结点的地址 存放在 头结点的next域内; [ Q.front->next; ]
首元结点的数据 :Q.front->next -> data ;
入队动front;出队动rear。
队列的头指针、尾指针是包含数据域和指针域两部分。Q.front->data;
(1)链队列初始化
(2)销毁链队列
(3)判断链队列是否为空(空——True)
(4)求链队列队头元素
(5)链队列入队 rear
1.先 生成新结点,将要入队的数据存放在新结点的数据域中,指针域设为NULL;
2.对新结点进行入队操作:尾指针的指针域 指向 p;移动尾指针。
(6)链队列出入队 front
第三章 栈和队列 结束