早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->

若循环队列以数组Q[0,…,m-1]作为其存储结构,变量rear表示循环队列中队尾元素的实际位置,其移动按

题目

若循环队列以数组Q[0,…,m-1]作为其存储结构,变量rear表示循环队列中队尾元素的实际位置,其移动按rear=(rear+1)mod m进行,变量length表示当前循环队列中的元素个数,则循环队列的队首元素的实际位置是(67)。

A.rear-length

B.(rear-length+m)mod m

C.(1+rear+m-length)mod m

D.m-length

参考答案
正确答案:C
解析:这种题目在考场上最好的解题方法是随便拿一个实际的例子,往里面一套便知道了。不过,作为试题分析,下面解释一下原理。循环队列就是将实现队列的数组a[m]的第一个元素a[0]与最后一个元素a[m-1]连接起来。队空的初态为head=tail=0。在循环队列中,当tail赶上head时,队列满。反之,当head赶上tail时,队列变为空。这样队空和队满的条件都同为head=tail,这会给程序判别队空或队满带来不便。因此,可采用当队列只剩下一个空闲结点的空间时,就认为队列已满的简单办法,以区别队空和队满。即对空的判别条件是head=tail,队满的判别条件是head=tail+1。因为rear表示的是队列尾元素的实际位置(注意:不是队尾指针)。而且题中有“移动按rear=(rear+1)modm进行”,这说明队列存放元素的顺序为:e[1],Q[2],…,Q[m-1],Q[0]。在理想情况下,rear-length+1能算出队首元素的位置,例如,当m=8,rear=-5,length=2时,rear-length+1=4,4就是正确的队首元素实际位置。但rear-length+1有一种极端情况无法处理,例如,当m=8,rear=1,length=5时,无法算出队首元素的实际位置,所以必须使用(1+rear+m-length)modm方法来计算。
看了若循环队列以数组Q[0,…,m...的网友还看了以下:

实数按正负可分为?填充题实数按正负分可分为A和零和BA可分为ab其中a可分为正整数和正分数B可分为 数学 2020-06-11 …

有一列数,按一定规律排成1-39-2781-243……,其中某三个相邻数的和是-1有一列数,按一定 数学 2020-07-19 …

vb上机操作题关于数组随机产生N个(20《=n,=100)两位整数,找出其中的奇数、偶数和素数,并 其他 2020-07-23 …

学校食堂有400千克大米,按照现有人数可以吃5天,后因増加了就餐人数,实际每天多吃20千克.这批大米 数学 2020-11-03 …

食堂有400千克大米,按照现有人数可以吃5天,后因増加了就餐人数,实际每天多吃20千克.这批大米实际 数学 2020-11-03 …

考勤计算假设每个人是1,出勤天数按30天计算,实际出勤14天,如何计算?假设每个人是1,全勤天数是3 其他 2020-11-06 …

实际用水多少吨?某城市自来水收费这样规定;每户每月用水15吨以内(含15吨)按1.20元每吨收费,超 数学 2020-11-14 …

假设买的双数为n,那么当n=(),两个摊位的优惠程度是一样的.甲摊位:如果买两双及以上,那么其中1双 数学 2020-11-17 …

把所有的两位数按数字和从小到大排列,如果数字和相等的就按照实际大小从小到大排列,(比如“10”的数字 其他 2020-11-18 …

已知a*3/4=b*4/5=c*5/6,其中a、b、c、都不为0,把a、b、c三个数按从小到大的顺序 数学 2020-11-20 …