设循环队列的存储空间为Q(1:35),初始状态为front=rear=35,现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为()
答案是(rear-front+35)%35,这个是什么东西啊,都看不懂,那个%是什么意思啊?
我只知道用rear-front,然后看得到正数要怎么弄?负数又怎么弄?这种类型的题目应该怎么做呀?哪位大侠能说详细些,讲解得好,我能明白的话,我会加分的,谢谢!
人气:139 ℃ 时间:2020-07-17 20:49:43
解答
如果是正数就不用加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的,自己动动手,出对入队的画画就全明白了
推荐
- 在一个容量为15的循环队列中,若头指针front=6,尾指针rear=9,则该循环队列中共有 个元
- 设循环队列的存储空间为Q(1:35),初始状态front=rear=35,先经过一系列入队和退队运算后,front=15,
- 循环队列,队满时:(rear+1)%maxsize=front 为什么要对maxsize取余呢?
- 在一个容量为15的循环对列中,若头指针Front=6,尾指针rear=9,则该循环队列中共有几个元素
- 1.甲,乙两站相距45千米,一列慢车和一列快车同时从甲,乙两站出发,速度分别是每52千米和每小时70千米,两车同向而行,开始时快车在慢车后面,问经过多少时间后快车追上慢车?
- 当A=2x²+1,B=4x²-2x-5,则:
- 如图是一个多面体的展开图,每个面内都标注了字母,请根据要求回答问题: (1)如果面A在多面体的底部,那么哪一面会在上面? (2)如果面F在前面,从左面看是面B,那么哪一面会在上
- 形容自立精神的成语
猜你喜欢