首页 > 试题广场 >

设顺序循环队列Q[0:M-1]的头指针和尾指针分别为F和R,

[单选题]

设顺序循环队列Q[0M-1]的头指针和尾指针分别为FR,头指针F总是指向队头元素的前一位置,尾指针R总是指向队尾元素的当前位置,则该循环队列中的元素个数为()。

  • R-F
  • F-R
  • (R-F+M)%M
  • (F-R+M)%M
这是循环队列。 F为头指针,R为尾指针,正常情况下,R > F,但也有可能F < R,这时,我们就需要(R - F + M) % M了。 
主要区分是R - F还是F - R即可。注意: 一般尾指针指向的值是空的。

发表于 2017-09-10 21:43:21 回复(0)
每添加一个元素,尾指针加一,每删除一个元素,头指针加一,所以说正常情况下R>F。也存在这种情况,尾指针走到头,即走完一圈后又从0开始,这时候F>R,R-F是负数,这时候给R加M,表示R的值为R加上一整圈,所以是R-F+M。为了照顾第一种情况,所以再对M取余。最终结果(R - F + M) % M。
发表于 2019-09-25 10:13:19 回复(0)