首页 > 试题广场 >

设循环队列为Q(1:m),其初始状态为front=rear=

[单选题]
设循环队列为Q(1:m),其初始状态为front=rear=m。经过一系列入队与退队运算后,front=20,rear=15。现要在该循环队列中寻找最小值的元素,最坏情况下需要比较的次数为(    )
  • 5
  • 6
  • m-5
  • m-6
记住队列元素的公式 (rear-front+m)%m
但是这个题,其实问的比较次数,所以为上面的公式-1,故15-20+m-1=m-6
发表于 2018-05-21 21:57:57 回复(3)
循环队列插入元素是(rear+1)%MAXQSIZE;
循环队列删除元素是(front+1)%MAXQSIZE;
front比rear“小”, front=20,rear=15,说明队列中有效数据个数是 15 + (m - 20)  =  m - 5个

发表于 2018-06-04 10:44:33 回复(2)
循环队列1:m,说明队列满元素为m个,队头在20,队尾在15,说明,队列中间换向了,总的元素有m-5个,所以比较次数为m-6.(第一个是赋值,后面的开始比较)
发表于 2018-04-27 14:38:50 回复(3)
记住队列元素的公式 (rear-front+m)%m ………………….. 但是这个题,其实问的比较次数,所以为上面的公式-1,故15-20+m-1=m-6……………………………☞☞说白了,就是Q存储队列元素用的数组下标为1~m。 队头在20,队尾在15,说明,队列中间换向了(因为front比rear小一般),所以m-队头+队尾=m-20+15=m-5.就是这个队列所含的元素, 而最次的情况,就是两个元素比较1次,3个元素比较2次, 一次类推 所以m-5个元素需要比较m-6次
编辑于 2020-02-26 12:15:57 回复(2)
循环队列1:m,说明队列满元素为m个,

说白了,就是Q存储队列元素用的数组下标为1~m

队头在20,队尾在15,说明,队列中间换向了,所以m-队头+队尾=m-20+15=m-5.就是这个队列所含的元素
而最次的情况,就是两个元素比较1次,3个元素比较2次, 一次类推 所以m-5个元素需要比较m-6次

发表于 2019-05-02 22:06:34 回复(1)
循环队列中元素个数的计算方法:(rear-front+QueueSize)%QueueSize
QueueSize -- 表示队列中元素的总个数
rear -- 表示rear指针指向的下标
front -- 表示front指针指向的下标

由题可知:QueueSize = m, front = 20,rear = 15
故元素个数:(15-20+m)%m=m-5
因为要求最小值:
两个数,比较1次
三个数,比较2次
...
m-5个数,比较m-6
发表于 2020-06-17 19:49:10 回复(0)
先进先出
发表于 2019-12-02 20:17:39 回复(0)

尾插入,头删除

发表于 2019-04-05 12:06:17 回复(0)
记住队列元素的公式 (rear-front+m)%m 但是这个题,其实问的比较次数,所以为上面的公式-1,故15-20+m-1=m-6
发表于 2018-09-05 14:59:34 回复(1)
厉害了
发表于 2018-04-26 17:14:32 回复(0)