永发信息网

设循环队列为Q(1:m),其初始状态为front=rear =m.经过一系列入队与退队运算后,front=20,rear=15.

答案:4  悬赏:40  手机版
解决时间 2021-03-27 04:40
  • 提问者网友:欺烟
  • 2021-03-26 19:08
设循环队列为Q(1:m),其初始状态为front=rear =m.经过一系列入队与退队运算后,front=20,rear=15.
最佳答案
  • 五星知识达人网友:你哪知我潦倒为你
  • 2021-03-26 20:35
如果是正数就不用加35了,如果是负数才要加35 这一题明显是个小陷阱,开始时候front=rear ,结束了还是front=rear 说明进来的和出去的一样多啊,你看 如果这是进来一个元素rear就加1,变成rear=1(因为是1:35啊,就是说元素只能排在1-35之间,35排完了就满了吗,没有 35排完了如果再进来元素就该排在1的位置上了.而不是36,这你得明白) 好了 进来一个rear加1 出去一个呢,front加1 就这样进来出去,进来出去,到最后front和rear还是相等的,那不就说明进来和出去的一样多嘛.这样一来最后的元素就和原来的元素一样多了,明显不是0就是35,因为要么队空(0个元素),要么队满(35个元素) %是求余数用的 10%3=1,就是这个意思 那个公式就是纯粹数学公式,和编程,语言都没关系. 这种题你画一张图最好理解了,当然短一点最好,弄个队列长度为6的,自己动动手,出对入队的画画就全明白了
全部回答
  • 1楼网友:你哪知我潦倒为你
  • 2021-03-26 23:28
rear-front+1+m
  • 2楼网友:妄饮晩冬酒
  • 2021-03-26 23:21
队列中有m-20+15=m-5个元素,比较次数为m-6
  • 3楼网友:雾月
  • 2021-03-26 22:04

有这样的一个公式,循环对列中元素的个数为(rear-front+M)%M,式中rear为队尾指针,front为队首指针,M为存储容量,%为取余符号。
对于找最小值的最坏情况下的比较次数,为循环对列中元素值个数减一(在这个地方,编程题中常出现,主要在for循环中。)望采纳!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯