设固定容量的循环队列的存储空间为a[0..20],且当前队头指针和队尾指针的值分别为8和3,则该队列中元素个数为______。
A. 5
B. 6
C. 16
D. 17
(3-8+20)%20=15
队列中元素个数size=(Q.rear-Q.front+Maxsize)%Maxsize
(3-8 + 21) % 21 = 16
1. 循环队列的存储空间为a[0..N]时,该循环队列可存放最多N+1个数据元素。
本题中循环队列的存储空间为a[0..20],则可存放21个数据元素。
2. 一般情况下,为区别循环队列队空和队满,会牺牲掉一个存储单元。
即入队时少用一个队列单元,约定以“队头指针在队尾指针的下一个位置作为队满的标志”。
所以队满时的标志为Q.front==(Q.rear+1)%Maxsize。
而队列中元素个数size=(Q.rear-Q.front+Maxsize)%Maxsize。
(因为存在队尾指针在队头指针前面的情况,即Q.rear-Q.front<0,所以加一个Maxsize,得到的才是真正的元素个数)
3. 本题中,元素个数size=(3-8+21)%21=16%21=16。
C
用户登录可进行刷题及查看答案
登录后提交答案