首页 > 试题广场 >

有一个用数组

[单选题]
有一个用数组C[1..m]表示的环形队列,m为数组的长度。假设f为队头元素在数组中的位置,r为队尾元素的后一位置(按顺时针方向)。若队列非空,则计算队列中元素个数的公式应为:
  • (m+r-f) mod m
  • r-f
  • (m-r+f) mod m
  • (m-r-f) mod m
  • (r-f) mod m
A
当r>f时r-f即为队列中元素个数
但由于为循环队列,r可能小于f,此时需要进行取模运算,首先加上m使其为正数,然后对m取模即可
此时同样对r>f情况适用
发表于 2017-01-27 13:01:33 回复(0)
不应该是(r - m + f) % m吗
发表于 2019-04-08 11:18:08 回复(0)
假如r和f位置重叠,(m+r-f) mod m不就等于0 ......???
发表于 2018-08-13 18:21:10 回复(0)