设数组data[0..m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作的语句为
A、front:=front+1
B、front:=(front+1)mod m
C、rear:=(rear+1)mod m
D、front:=(front+1)mod (m+1)
【正确答案】:D
【题目解析】:[解析] 循环队列采用的方法是:假设向量sq↑. data[maxsize]是一个首尾相接的圆环,即sq↑. data[0]接在sq↑. data[maxsize1]之后,我们将这种意义下的向量称循环向量,并将循环向量中的队列称为循环队列。若当前尾指针等于向量的上界,则再做入队列操作时,令尾指针等于向量的下界,这样就利用到已被删除的元素空间,克服假上溢现象。因此入队操作时,在循环意义下的尾指针加1操作可描述为:if(sq↑.rear>=maxsize)sq↑.near:=0;else sq↑. rear++;如果利用“模运算”,上述循环意义下的尾指针加1操作,可以更简洁地描述为:sq↑. rear=(sq↑. rear+1) %maxsize。同样,出队操作时,在循环意义下的头指针加1操作,也可利用“模运算”来实现:sq↑. front:=(sq↑. front+1) %maxsize。
发表评论 取消回复