二级计算机知识, 循环队列

 我来答
太平洋科技
优质机构答主

2023-01-06 · 百度认证:广东太平洋互联网信息服务有限公司官方账号,优质数码...
太平洋科技
太平洋电脑网通过分析、评测生活及工作中各类消费品,让消费者客观了解产品性能及安全状况,帮助用户做出理性购买选择。同时科普各领域产品知识,解答用户选购及使用中所遇问题。
向TA提问
展开全部

循环队列的容量为50,如果头指针front=45(指向队头元素的前一个位置),尾指针rear=10(指向队尾元素),则该循环队列中共有15元素。50-45+10=15。

循环队列中,由于入队时尾指针向前追赶头指针;出队时头指针向前追赶尾指针,造成队空和队满时头尾指针均相等。因此,无法通过条件front==rear来判别队列是"空"还是"满"。

解决这个问题的方法至少有两种:一种为另设一布尔变量以区别队列的空和满;另一种方式就是数据结构常用的: 队满时:(rear+1)%n==front,n为队列长度(所用数组大小)。由于rear,front均为所用空间的指针,循环只是逻辑上的循环,所以需要求余运算。

类型定义采用环状模型来实现队列,各数据成员的意义如下:front指定队首位置,删除一个元素就将front顺时针移动一位;rear指向元素要插入的位置,插入一个元素就将rear顺时针移动一位;count存放队列中元素的个数,当count等于MaxQSize时,不可再向队列中插入元。

扩展资料:

循环队列就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。在循环队列结构中,当存储空间的最后一个位置已被使用而再要进入队运算时,只需要存储空间的第一个位置空闲,便可将元素加入到第一个位置。

即将存储空间的第一个位置作为队尾。 循环队列可以更简单防止伪溢出的发生,但队列大小是固定的。在循环队列中,当队列为空时,有front=rear,而当所有队列空间全占满时,也有front=rear。

为了区别这两种情况,规定循环队列最多只能有MaxSize-1个队列元素,当循环队列中只剩下一个空存储单元时,队列就已经满了。因此,队列判空的条件时front=rear,而队列判满的条件时front=(rear+1)%MaxSize。

参考资料来源:百度百科-循环队列

光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式