队列
来源:互联网 发布:nodejs nginx 部署 编辑:程序博客网 时间:2024/06/06 02:34
队列概述
队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。
–队尾(rear)——允许插入的一端
–队头(front)——允许删除的一端
队列特点:先进先出(FIFO)
队列的结构
如下图所示:
线性表的操作主要包括:
(1)清空队列
(2)判断是否为空
(3)元素的个数
(4)入队列
(5)出队列
(6)取对头元素
顺序循环队列
结构模型
•存在问题
设数组长度为M,则:
–当front=0,rear=M时,再有元素入队发生溢出——真溢出
–当front!=0,rear=M时,再有元素入队发生溢出——假溢出
•解决方案
–队首固定,每次出队剩余元素向下移动——浪费时间
–循环队列
»基本思想:把队列设想成环形,让sq[0]接在sq[M-1]之后,若rear+1==M,则令rear=0;
链式队列
结构模型
设队首、队尾指针front和rear,front指向头结点,rear指向队尾
0 0
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 设计模式之单例模式(C++)
- CountDownLatch的使用方法
- iphone常用控件之UIScrollView
- IOS中NSUserDefaults的用法(轻量级本地数据存储)
- poj 3667
- 队列
- 最大公约数和最小公倍数
- 对C++中派生类的认识
- 字符串分割(C++)
- java 反射通过get方法获得属性值
- Leetcode: Maximum Product Subarray
- 关于单例模式的一点思考
- 谈谈小米4的win10---一个windows phone 用户2年的瞎扯
- Sicily 13907. Dice Game