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

二级计算机知识,

循环队列,容量50,头指针front=45,尾指针rear=10.则队列中有几个元素?答案15.

求高手帮忙讲解。

循环队列的容量为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。

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

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-24
循环队列也就是一个圆圈,容量50,也就是圆圈内有50个小分区,你可以给他编号1~50,front=45,就是头指针指向第45个小分区,rear=10就是尾指针指向第10个小分区,怎么会尾指针在头指针之前呢,因为他是循环对列,很简单,他绕了一圈又从头开始。所以元素个数是这样的,设为x,45+x-50=10。不管哪里,书上那个(rear-front+50)%50那个公式着实变态,很罗嗦,所以我自己发明了这种方法,希望你能看懂。本回答被网友采纳
第2个回答  2011-03-05
(rear-front+50)%50=15
你把循环队列看做是一个手表一样的圆圈,就能想通这道题了。

二级计算机知识, 循环队列
循环队列的容量为50,如果头指针front=45(指向队头元素的前一个位置),尾指针rear=10(指向队尾元素),则该循环队列中共有15元素。50-45+10=15。循环队列中,由于入队时尾指针向前追赶头指针;出队时头指针向前追赶尾指针,造成队空和队满时头尾指针均相等。因此,无法通过条件front==rear来判别队列...

C语言计算机二级考试循环队列元素个数怎么算
循环队列 Q[0:m]是 首先 队列一开始是 front = rear = m,所有队列都是x,表示无效数据。【1】【2】【3】【4】...【m-1】【m】【x】【x】【x】【x】...【x 】【 x 】如果插入一个数据 【a】表示有效数据 那么 front = 1, rear = m 【1】【2】【3】【4】...【m-1】...

[计算机二级公共基础知识]求教,循环队列的计算问题
设循环队列共有m个元素,rear对尾指针指向队尾元素,front队头指针指向队头元素前一个位置,即队列中队头元素在第21个位置,对尾元素在第15个位置,因此,队列中共有m-21+15+1=m-5个元素,又最坏情况下,元素一一比较,最后需要比较m-5-1=m-6次。如下图:...

计算机二级公共基础知识循环队列
而现在队列的头大于尾,所以为:总长度-队列中现有元素 所以答案为D

C语言计算机二级考试循环队列元素个数怎么算
循环队列 Q[0:m]是 首先 队列一开始是 front = rear = m,所有队列都是x,表示无效数据。【1】【2】【3】【4】...【m-1】【m】【x】【x】【x】【x】...【x 】【x 】如果插入一个数据 【a】表示有效数据 那么 front = 1,rear = m 【1】【2】【3】【4】...【m-1】【m】...

计算机二级 vb 设某循环队列的容量为50,头指针front=5,尾指针rear=29...
在循环队列中因为头指针指向的是队头元素的前一个位置,所以是从第6个位置开始有数据元素,即计算从6到29之间有多少个元素,所以队列中的数据元素的个数为:29-6+1=29-5=24。

【队空队满】本人计算机小白,来年考计算机二级证书,求大神解答,详细步 ...
【队空队满】本人计算机小白,来年考计算机二级证书,求大神解答,详细步骤。循环队列的存储空间Q(1:40),初始状态为front=rear=40。经过一系列正常的入队和退队操作后,front=rear=1... 【队空队满】本人计算机小白,来年考计算机二级证书,求大神解答,详细步骤。循环队列的存储空间Q(1:40),初始状态为front=rear=40...

计算机二级ms office高级应用基础知识
下面是我整理的关于计算机二级ms office高级应用基础知识,希望大家认真阅读! 1.1算法 1.算法的基本概念 (1)概念:算法是指一系列解决问题的清晰指令。 (2)4个基本特征:可行性、确定性、有穷性、拥有足够的情报。 (3)两种基本要素:对数据对象的运算和操作、算法的控制结构(运算和操作时问的顺序)。 (4)设计...

求计算机二级公共基础知识部分的知识总结
循环队列属于【存储结构】。数据的存储结构又称为物理结构,是数据的逻辑结构在计算机存储空间中的存放形式。一个逻辑结构可以有多种存储结构,且各种存储结构影响数据处理的效率。程序执行的效率与数据的存储结构密切相关。数据结构分为线性结构和非线性结构,带链的队列属于【线性结构】。线性表的存储结构主要分为顺序存储...

2018年全国计算机二级考试公共基础知识考点(1)
2018年全国计算机二级考试公共基础知识考点(1)公共基础知识 1. 算法的有穷性是指算法必须能执行有限个步骤之后终止.2. 算法的时间复杂度是指算法在执行过程中所需要的基本运算次数 3. 队列、栈、线性表属于线性数据结构,二叉树不属于 4. 数据的存储结构是指: 数据的逻辑结构在计算机中的表示 5. 一...

相似回答