C语言循环队列问题求教

设循环队列为Q(1:m),其初始状态为front=rear=m,经过一系列入队与退队运算后,front=30,rear=10,现要在该循环队列中作顺序查找,最坏情况下需要... 设循环队列为Q(1:m),其初始状态为front=rear=m,经过一系列入队与退队运算后,front=30,rear=10,现要在该循环队列中作顺序查找,最坏情况下需要比较的次数为?(求算法??)
----答案是m-20,感觉错误了,应该是m-21,求大侠帮忙指点
展开
 我来答
yanglei5658
2015-09-02 · TA获得超过4755个赞
知道大有可为答主
回答量:835
采纳率:100%
帮助的人:508万
展开全部

这个并没有错,可以根据图分开来算

front指针指向存储元素位置,rear指针指向第一个未存储元素位置

首先,队列上半部分,有元素,m-30+1;

其次,队列下半部分,有元素,10-1;

所以,总共的元素个数为total = m-30+1+10-1 = m-20

追问
题目求比较次数,顺序查找的比较次数应该是比元素个数少1,对吧?那最后结果应该是m-20-1=m-21才对吧?但不知道答案怎么是m-20
追答
如果是比较次数的话,就比总的个数少一个,你的答案应该没啥问题,就是m–21
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式