首页 > 试题广场 >

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

[单选题]

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

  • (F-R)%M
  • (R-F+M)%M
  • (F-R+M)%M
  • R-F-1
书中定义的队列长度为:(rear-front++QueueSize)%QueueSize 1.rear: 定义中是指向末尾元素的下一个位置, 本题中是直接指向末尾元素, 所以将rear向后移动一个位置, R-1 2.front:定义中是指向首元素, 而本题中是指向首元素的前一个元素, 因此向后移动一个位置, F-1 rear = R-1 front = F-1 所以: [ (R - 1) - ( F - 1) + M]%M = (R-F+M)%M
发表于 2018-02-01 04:11:18 回复(8)
对于一个顺序循环队列Q[0,M-1],队列中的元素个数为(R-F+M) % M,其中%表示求余数运算。这是因为在顺序循环队列中,队列的尾指针R始终指向最后一个元素的下一个位置,即空闲的位置,头指针F则指向队列的第一个元素的前一个位置。因此,队列中的元素个数可以通过尾指针和头指针的差值来计算,但是需要考虑到队列循环的情况,即尾指针在头指针之前的情况。因此,在计算元素个数时,需要加上队列长度M,以保证计算的结果为正数。
发表于 2023-02-28 13:34:34 回复(0)
一般来说 尾指针指向 队尾元素的下一个结点 因为使用了空结点判断队列满或空
F = front -1
R = rear +1
发表于 2020-07-07 11:01:32 回复(0)
能否R=F???
发表于 2019-04-05 19:53:13 回复(1)
B
发表于 2017-08-24 23:34:31 回复(0)