第 1 天,2021 年 12 月 17 日,关于循环队列。

题目

数组Q[0..m-1]用来表示一个循环队列, 用 front 指向队头元素,rear 指向队尾元素的后一个位置 ,则当前队列中的元素数是。(队列总的元素数不会超过队列大小)

  1. (rear-front+m) % m
  2. rear-front+1
  3. rear-front-1
  4. rear-front

image.png

答案

正确答案:1. (rear-front+m)% m.
注意题目:rear 指向队尾元素的后一个元素。(而不是队尾元素)

假设数组大小为 8,黄色的为队列中的元素,画图如下:
循环链表.001.png
可见,队列中元素的个数为 (rear-front+m)% m