首页 > 试题广场 >

数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位

[单选题]
数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素的公式为()

  • r-f
  • (n+f-r)%n
  • n+r-f
  • (n+r-f)%n
不了解原理,之前的都是这个套路,都是(末尾指针-首指针+n)%n
发表于 2017-05-23 22:05:41 回复(4)
队尾指针小于队首
发表于 2017-07-26 00:44:31 回复(0)
计算队列的元素个数:(尾-头+表长)%表长。
发表于 2018-02-17 13:23:43 回复(0)
rear大于front时,元素个数就是rear减去front。 rear小于front时,让rear多加一个周期。此时元素个数不是front减去rear。应该是,rear+n以后减去front。统一代码都写成,rear+n-front但是这个表达式对于第一种情况多算了一个周期,所以取余。 自己画个图数一下,注意数个数的顺序应该是沿着表头到表尾的方向数。
发表于 2019-10-30 00:08:33 回复(0)
发表于 2021-01-12 16:21:53 回复(0)

万金油公式,感觉在任何情况下都对

发表于 2019-09-04 18:21:10 回复(0)
记下来--计算队列的元素个数:(尾-头+表长)%表长
发表于 2019-05-08 10:31:27 回复(0)
循环队列两种情况,下标值f大于r和f小于r,计算队列元素个数都符合上排公式
发表于 2018-12-26 11:04:04 回复(0)