设某循环队列Q的定义中有front和rear两个域变量,其中,front指示队头

最全题库2022-08-02  28

问题 设某循环队列Q的定义中有front和rear两个域变量,其中,front指示队头元素的位置,rear指示队尾元素之后的位置,如下图所示。若该队列的容量为M,则其长度为(  )。A.(Q.rear-Q.front+1)B.(Q.rear-Q.front+M)C.(Q.rear-Q.front+1)%MD.(Q.rear-Q.front+M)%M

选项 A.(Q.rear-Q.front+1)
B.(Q.rear-Q.front+M)
C.(Q.rear-Q.front+1)%M
D.(Q.rear-Q.front+M)%M

答案 D

解析 本题考查循环队列长度的求取。
根据图示,可以得到长度(Q.rear-Q.front+M),但在此不容忽视的一个问题是,循环队列在进行了多次入队出队操作之后,可能出现超出队列长度溢出的情况,因此需要让其与M进行求模操作,修正位置,故(Q.rear-Q.front+M)%M为队列中的元素个数(即队列长度)。
转载请注明原文地址:https://www.tihaiku.com/congyezige/2410445.html

最新回复(0)