队列 -- 循环队列
来源:互联网 发布:网络信息安全工作方案 编辑:程序博客网 时间:2024/04/30 08:06
实现队列的方法有很多,比如链表,动态数组等,这里主要介绍一下循环队列,首先我们用静态数组做个简单的队列:
从上图很显然可以看出,全部出队后,将无法继续入队,这样的情况也叫做“假溢出”,即使数组中,明明还有空间可以利用,但是却无法使用。为了解决这样的问题,就引入了一个叫“循环队列”这么一个方法。那么什么叫循环队列呢?
循环队列定义:为了克服顺序队列中假溢出,通常将一维数组Queue[0]到Queue[MAXSIZE - 1]看成是一个首尾相连接的圆环,即Queue[0]与Queue[MAXSIZE - 1]相连接在一起,将这样形式的队列成为循环队列。
S1循环队列示例图:
S2循环队列各个参数的含义:
1)队列初始化
front和rear的值都是零。
2)队列非空
front代表的是队列的第一个元素。
rear代表的是队列的最后一个元素的下一个元素。
3)队列空
front和rear的值相等,不一定为零。
S3循环队列入队的伪算法:
1)将值存入rear所代表的位置。
2)rear = (rear + 1) % 数组的长度。
S4循环队列出队的伪算法:
1)取出front所代表位置的值。
2)front = (front + 1) % 数组长度。
S5如何判断循环队列为空:
1)如果front与rear的值相等,那么该循环队列为空队列。
S6如何判断循环队列已满:
1)通常使用两种方式
1.多增加一个标识参数。
2.如果 (rear + 1) % 数组长度 == front 那么,已满。
S7循环队列部分代码
从上图很显然可以看出,全部出队后,将无法继续入队,这样的情况也叫做“假溢出”,即使数组中,明明还有空间可以利用,但是却无法使用。为了解决这样的问题,就引入了一个叫“循环队列”这么一个方法。那么什么叫循环队列呢?
循环队列定义:为了克服顺序队列中假溢出,通常将一维数组Queue[0]到Queue[MAXSIZE - 1]看成是一个首尾相连接的圆环,即Queue[0]与Queue[MAXSIZE - 1]相连接在一起,将这样形式的队列成为循环队列。
S1循环队列示例图:
S2循环队列各个参数的含义:
1)队列初始化
front和rear的值都是零。
2)队列非空
front代表的是队列的第一个元素。
rear代表的是队列的最后一个元素的下一个元素。
3)队列空
front和rear的值相等,不一定为零。
S3循环队列入队的伪算法:
1)将值存入rear所代表的位置。
2)rear = (rear + 1) % 数组的长度。
S4循环队列出队的伪算法:
1)取出front所代表位置的值。
2)front = (front + 1) % 数组长度。
S5如何判断循环队列为空:
1)如果front与rear的值相等,那么该循环队列为空队列。
S6如何判断循环队列已满:
1)通常使用两种方式
1.多增加一个标识参数。
2.如果 (rear + 1) % 数组长度 == front 那么,已满。
S7循环队列部分代码
- 队列-循环队列/链队列
- 队列,链队列,循环队列
- 队列,链队列,循环队列
- 队列--数组循环队列
- 队列 -- 循环队列
- 循环队列和队列
- 队列之循环队列
- 队列-静态循环队列
- 【数据结构】队列-循环队列
- 队列之循环队列
- 【数据结构-队列】循环队列
- 队列---循环队列
- 【队列】循环队列
- 队列-循环队列
- 队列和循环队列
- 队列和循环队列
- 数据结构(队列):循环队列
- 队列与循环队列
- 设置Qt应用程序图标
- Js获取当前日期和农历日期
- android mediastore
- usaco4.1.2 有N块长木板,希望得到M块短木板,问最多可以裁多少块短木板
- 简介 一款性能稳定,功能极全的contex-A8 real S5PV210开发板
- 队列 -- 循环队列
- 大四的暑假依旧留在北京
- MTK TP Driver Tool Vibrator Speaker介绍
- android 扫描SD卡与系统文件
- Reactor框架的UDP server
- SAP运输管理软件8.0如期上市
- 黑马程序员-JAVA中的反射
- kano模型心得
- 转:DataSet和DataTable有用的方法