校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > 数据结构 > 队列
题目

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

A.r-f

B.(n+f-r)% n

C.n+r-f

D.(n+r-f)% n

解答

正确答案是 D

长度等于尾指针减去头指针加上总长度然后对总长度取余

C 4条回复 评论
wqy*

r > f 时,应该是A;r < f 时,应该是C。D是一般情况,包含了 r > f 和 r < f 的情况,因此选D。 

发表于 2018-10-12 12:01:35
0 0
甜恩

什么?_?假如容量为10,但循环队列中现有元素个数为9,即如果f=9,n=10,r=0呢?

发表于 2018-10-12 12:01:27
0 0
克劳德

少用一个元素空间,约定以“队列头指针front在队尾指针rear的下一个位置上”作为队列“满”状态的标志。即:
  队空时: front=rear

  队满时: (rear+1)%maxsize=front

(形成一个圆,逆时针为下一位置)

发表于 2018-10-12 12:01:20
0 0
流星飒沓

长度等于尾指针减去头指针加上总长度然后对总长度取余

发表于 2018-10-12 12:01:10
0 0