定义:一种实现了先进先出的数据结构。
分类
静态队列--链表 *&p=p;
链式队列--数组,一般都是循环队列
循环队列
循环队列示意图
学习循环队列需要明白的7个问题:
1.静态队列为什么是循环队列
在队列里面,front指向队列的第一个位置,rear指向最后一个元素的下一个元素。
如果现在是数组队列,再进行出对操作后,删除的空间都将无法再次使用,所以设计出了
循环队列
2.循环队列需要几个参数来实现
2个,front(对头) rear(队尾)
3.循环队列各个参数的含义
1 队列初始化
front=rear=0
2.队列非空
3.队列空
front=rear
4.循环队列入队伪算法
1 将值存入r所代表的位置
2.错误的写法:rear=rear+1; 正确的写法是:rear = (rear+1)%数组的长度
5 循环队列出对
front=(front+1)%数组的长度
6 判断循环队列为空
front和rear的值相等,就一定为空
7 判断循环队列已满
front的值有可能比rear值大,也有可能比rear小,也有可能相等
1 多增加一个标识参数(计数器)
2.少用一个元素,即如果rear和front紧挨着,则代表队列已满
if((r+1)%length==f){
已满
}else{
未满
}