数据结构

设数组Data[m+1]作为循环队列sq的存储空间,front成为队头指针,rear为队尾指针,则执行入队操作的语句为()A、rear = rear+1B、rear = (rear+1)%mC、front = (front+1)%mD、rear = (rear+1)%m + 1

题目

设数组Data[m+1]作为循环队列sq的存储空间,front成为队头指针,rear为队尾指针,则执行入队操作的语句为()

  • A、rear = rear+1
  • B、rear = (rear+1)%m
  • C、front = (front+1)%m
  • D、rear = (rear+1)%m + 1
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

将数组a[0,1,…,m-1]作为循环队列SQ的存储空间,f为队头指示,r为队尾指示,则执行出队操作的语句为()

A.f=f+1

B.f=(f+1)%m

C.r=(r+1)%m

D.f=(f+1)%(m+1)


正确答案:B

第2题:

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


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

第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题:

设循环队列的结构是: const int MaxSize=100; typedef int Data Type; typedef struct { DataType data[MaxSize]; int front, rear; }Queue; 若有一个Queue类型的队列Q,试问判断队列满的条件应是(33)。

A.Q.front=Q.rear;

B.Q.front-Q.rear==MaxSize;

C.Q.front+Q.rear=MaxSize;

D.Q.front==(Q.rear+1)%MaxSize;


正确答案:D
解析:循环队列尾指针加1用循环区长度取模后等于头指针则表示队列满。

第5题:

设数组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。

第6题:

设数组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。

第7题:

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

:Afront=front+1

Bfront=(front+1)% m

Crear=(rear+1)%m

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


参考答案:D

第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]作为循环队列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。

第10题:

设数组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

更多相关问题