数据结构

设数组A[m]为循环队列Q的存储空间,font为头指针,rear为尾指针,判定Q为空队列的条件()。

题目

设数组A[m]为循环队列Q的存储空间,font为头指针,rear为尾指针,判定Q为空队列的条件()。

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

设循环队列用C语言数组A[m]表示,front指针指向真正队头的前一个位置,rear指针指向真正队尾,队列中当前元素个数为n,则(1)若已知front、rear,则n=()。(2)若已知front、n,则rear=()。(3)若已知rear、n,则front=()。


参考答案:n=(rear-front+m)%mrear=(front+n)%mfront=(rear-n+m)%m

第2题:

设循环队列Q的定义中有rear和len两个域变量,其中rear表示队尾元素的指针,len表示队列的长度,如下图所示(队列长度为3,队头元素为e)。设队列的存储空间容量为M,则队头元素的指针为(57)。

A.(Q.rear+Q.len-1)

B.(Q.rear+Q.1en-1+M)%M

C.(Q.rear-Q.1en+1)

D.(Q.rear-Q.1en+1+M)%M


正确答案:D
解析:按照正常线性存储的队列,队头元素的指针为(Q.rear-Q.len+1),而在循环队列里面,Q.rear-Q.1en+1可能会由于循环存储而变为负值,所以需要处理为(Q.rear-Q.1en+1+M)%M。

第3题:

●设数组data[m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作后其头指针front值为 (41) 。

(41) A.front=front+1

B.front=(front+1)%(m-1)

C.front=(front-1)%m

D.front=(front+1)%m


正确答案:D
【解析】循环队列中出队操作后头指针需在循环意义下加1,因此为front=(front+1)%m。

第4题:

设数组data[0…m]作为循环队列S q的存储空间,front为队头指针,rear为队尾指针,则执行出队操作的语句为( )。

A.S q↑.front:=S q十.front+1;

B.S q↑.front:=(S q十.front+1)%maxsize;

C.S q↑.rear:=(s q十.rear+1)%maxsize;

D.S q↑.front:=(s q十.front+1)%(maxsize+1);


正确答案:B
B。【解析】循环队列采用的方法是:假设向量sq↑.data[maxsize]是一个首尾相接的圆环,即sq↑.data[0]接在sq↑.data[maxsize-1]之后,我们将这种意义下的向量称循环向量,并将循环向量中的队列称为循环队列。若当前尾指针等于向量的上界,则再做入队列操作时,令尾指针等于向量的下界,这样就利用到已被删除的元素空间,克服假上溢现象。因此入队操作时,在循环意义下的尾指针加l操作可描述为:if(Sq↑.rear>=maxsize)sq↑.near:=0;elsesq↑.rear++;如果利用“模运算”,上述循环意义下的尾指针加l操作,可以更简洁地描述为:sq↑.rear=(sq↑.rear+1)%maxsize。同样,出队操作时,在循环意义下的头指针加1操作,也可利用“模运算”来实现:sq↑.front:=(sq↑.front+1)%max-size。

第5题:

设循环队列的存储空间为Q(1:3),初始状态为front=rear=30。现经过一系列入队与退队运算后,front=16,rear=15,则循环队列中有()个元素。


正确答案:29
通过题干的描述可知此循环队列共30个空间,另外队尾指针rear的值小于队头指针front的值,所以利用公式(rear-front+30)%30=29,可知此循环队列的元素个数为29。

第6题:

设循环队列用C语言数组A[m]表示,front指针指向真正队头的前一个位置,rear指针指向真正队尾,则(1)队满的条件为(),(2)队空的条件为()。


参考答案:front=(rear+1)%mrear==front

第7题:

设数组data[0…m]作为循环队列sq的存储空间,front为队头指针,rear为队尾指针,则执行出队操作的语句为

A.sq↑.front:=sq↑.front+1;

B.sq↑.front:=(sq↑.front+1)%maxsize ;

C.sq↑.rear:=(sq↑.rear+1)%maxsize ;

D.sq↑.front:=(sq↑.front+1)%(maxsize+1);


正确答案:B
解析:循环队列采用的方法是:假设向量sq↑.data [maxsize]是一个首尾相接的圆环,即sq↑.data [0]接在sq↑.data [maxsize-1]之后,我们将这种意义下的向量称循环向量,并将循环向量中的队列称为循环队列。若当前尾指针等于向量的上界,则再做入队列操作时,令尾指针等于向量的下界,这样就利用到已被删除的元素空间,克服假上溢现象。因此入队操作时,在循环意义下的尾指针加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。

第8题:

设数组data[m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作后其头指针front值为()

A、front=(front+1)%m

B、front=(front-1)%m

C、front=front+1

D、front=(front+1)%(m-1)


参考答案:A

第9题:

设数组Data[0..m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作的语句为()

:Afront=front+1

Bfront=(front+1)% m

Crear=(rear+1)%m

Dfront=(front+1)%(m+1)


参考答案:D

第10题:

设数组data[0…m]作为循环队列s q的存储空间,front为队头指针,rear为队尾指针,则执行出队操作的语句为( )。

A.S q↑.front:=s q↑.front+1;

B.S q↑.front:=(S q↑.front+1)%maxsize;

C.S q↑.rear:=(S q↑.rear+1)%maxsize;

D.S q↑.front:=(s q↑.front+1)%(maxsize+1);


正确答案:B
循环队列采用的方法是:假设向量Sq↑.data[maxsize]是一个首尾相接的圆环,即Sq↑.data[0]接在Sq↑.data[maxsize—1]之后,我们将这种意义下的向量称循环向量,并将循环向量中的队列称为循环队列。若当前尾指针等于向量的上界,则再做入队列操作时,令尾指针等于向量的下界,这样就利用到已被删除的元素空间,克服假上溢现象。因此入队操作时,在循环意义下的尾指针加1操作可描述为:if(Sq↑.rear>=maxsize)sq↑.near:=0;elsesq↑.rear++;如果利用“模运算”,上述循环意义下的尾指针加l操作,可以更简洁地描述为:Sq↑.rear=(sq↑.rear+1)%maxsize。同样,出队操作时,在循环意义下的头指针加1操作,也可利用“模运算”来实现:sq↑.front:=(sq↑.front+1)%max—size。

更多相关问题