设循环队列的元素存放在一维数组Q[0‥30]中,队列非空时,front指示队头元素的前一个位置,rear指示队尾元素。如果队列中元素的个数为11,front的值为25,则rear应指向()元素。A、Q[4]B、Q[5]C、Q[14]D、Q[15]
设循环队列的元素存放在一维数组Q[0‥30]中,队列非空时,front指示队头元素的前一个位置,rear指示队尾元素。如果队列中元素的个数为11,front的值为25,则rear应指向()元素。
- A、Q[4]
- B、Q[5]
- C、Q[14]
- D、Q[15]
相关考题:
设循环队列为Q(1:m),初始状态为front=rear=m。现经一系列入队与退队操作后,front=rear=m-1,则()。A.该循环队列已空B.该循环队列已满C.该循环队列中有1个元素D.该循环队列已空或已满
若循环队列以数组Q[0...m-1]作为其存储结构,变量rear表示循环队列中队尾元素的实际位置,其移动按rear=(rear+1)mod m进行,变量length表示当前循环队列中的元素个数,则循环队列的队首元素的实际位置是______。A.rear-lengthB.(rear-length+m)mod mC.(1+rear+m-length)mod mD.m-length
假设以数组Q[m]存放循环队列中的元素, 同时设置一个标志tag,以tag == 0和tag == 1来区别在队头指针(front)和队尾指针(rear)相等时,队列状态为“空”还是“满”。试编写与此结构相应的插入(enqueue)和删除(dlqueue)算法。
循环队列中,设队列元素依次存放在Q[0..m]中,f、r分别指示队头元素位置和队尾元素的下一个位置,约定存储m个元素时为队满。则队列空的判定方法是(),队列满的判定方法是()。 A.f==rB.(f+1)%(m+1)==rC.(r+1)%(m+1)==fD.(r+1)% m==f
设栈S的初始状态为空,队列Q的初始状态如图所示。对栈S和队列Q进行下列两步操作: (1)删除Q中的元素,将删除的元素插入S,直至Q为空。 (2)依次将S中的元素插入Q,直至S为空。在上述两步操作后,队列Q的状态是【 】。
设循环队列Q的定义中有front和size两个域变量,其中front表示队头元素的指针,size表示队列的长度,如下图所示(队列长度为3,队头元素为x,队尾元素为z)。设队列的存储空间容量为M,则队尾元素的指针为 (58)。A.(Q.front+Q.size-1)B.(Q.front+Q.size-1+M)%MC.(Q.front-Q.size)D.(Q.front-Q.size+M)%M
设循环队列的存储空间为Q(1:m),初始状态为空。现经过一系列正常的入队与退队操作后,front=m-1,rear=m,此后再向该循环队列中插入一个元素,则队列中的元素个数为()。A.2B.1C.m-1D.m
设循环队列的存储空间为Q(1:m),初始状态为空。现经过一系列正常的入队与退队操作后,front=m,rear=m-1,此后从该循环队列中删除一个元素,则队列中的元素个数为()。A.m-2B.1C.m-1D.0
阅读以下说明和C函数,填补函数代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。【说明】队列是一种常用的数据结构,其特点是先入先出,即元素的插入在表头、删除在表尾进行。下面采用顺序存储方式实现队列,即利用一组地址连续的存储单元存放队列元素,同时通过模运算将存储空间看作一个环状结构(称为循环队列)。设循环队列的存储空间容量为MAXQSIZE,并在其类型定义中设置base、rear和lengtb三个域变量,其中’base为队列空间的首地址,rear为队尾元素的指针,length表示队列的长度。define maxqstze 100typedef struct {QElemType *base; /*循环队列的存储空间首地址*/int rear; /*队尾元素索引*/int length; /*队列的长度*/) SqQueue;例如,容量为8的循环队列如图3-1所示,初始时创建的空队列如图3一l(a)所示经过一系列的入队、出队操作后,队列的状态如图3-1 (b)所示(队列长度为3)。下面的C函数1、C函数2和C函数3用于实现队列的创建、插入和删除操作,请完善这些代码。【C函数1】创建一个空的循环队列。int initQueue (SqQueue *Q)/*创建容量为MAXQSIZE的空队列,若成功则返回1;否则返回0*/{ Q->base = (QElemType*) malloc(MAXQSIZE* (1) )if (!Q=>base) return 0;。;Q->length=O;Q-’rear =O:Return 1;} /*InitQueue*/【c函数2】元素插入循环队列。int EnQueue(sqQueue *Q. QElemType e)/*元素e入队,若成功则返回1;否则返回0*/{if ( Q->length>=MAXQSIZE) return 0.;Q->rear=(2);Q->base [Q->rear]=e;(3) ;Return 1) /*EnQUeue*/【c函数3】元素出循环队列。int DeQueue (SqQueue *Q. QElemType *e)/*若队列不空,则删除队头元素,由参数e带回其值并返回1;否则返回O*/{1f‘(4),return 0;*e =O->base[ (Q=>rear - Q->length+I+MAXQSTZE) %MAXQSIZE](5) ;returnl;} /*DeQueue*/
以数组Q[0…m-1]存放循环队列中的元素,若变量front和qulen分别指示循环队列中队头元素的实际位置和当前队列的长度,则队尾元素的实际位置是()。A.front+qulen-1B.(front+qulen)modmC.(front+qulen-1)modmD.front+qulen
设循环队列的存储空间为Q(1:30),初始状态front=rear=30,先经过一系列入队和退队运算后,front=10,rear=10,则循环队列中的元素个数为()。A.30B.0C.29D.0或30
循环队列用a[0],...,a[7]的一维数组存放队列元素,(采用少用一个元素的模式),设front和rear分别为队头和队尾指针,且front和rear 的值分别为2和7,当前队列中的元素个数是()。
15.循环队列采用数组data()来存储元素的值,并用front和rear分别作为其头尾指针。为区分队列的满和空,约定队列中能够存放的元素个数最大为n—1,也即至少有一个元素空间不用,则在任意时刻,至少可以知道一个空的元素的下表是()。入队时,可用语句()切除新元素在数组data中的下标。
用数组A[0 … m-1]来存放循环队列的元素,且它的头尾指针分别为front 和rear, 队列满足条件(sq.rear + 1) % m == sq.front,队列中当前元素的个数为()
填空题15.循环队列采用数组data()来存储元素的值,并用front和rear分别作为其头尾指针。为区分队列的满和空,约定队列中能够存放的元素个数最大为n—1,也即至少有一个元素空间不用,则在任意时刻,至少可以知道一个空的元素的下表是()。入队时,可用语句()切除新元素在数组data中的下标。
单选题设循环队列的元素存放在一维数组Q[0‥30]中,队列非空时,front指示队头元素的前一个位置,rear指示队尾元素。如果队列中元素的个数为11,front的值为25,则rear应指向()元素。AQ[4]BQ[5]CQ[14]DQ[15]
填空题循环队列用a[0],...,a[7]的一维数组存放队列元素,(采用少用一个元素的模式),设front和rear分别为队头和队尾指针,且front和rear 的值分别为2和7,当前队列中的元素个数是()。
填空题用数组A[0 … m-1]来存放循环队列的元素,且它的头尾指针分别为front 和rear, 队列满足条件(sq.rear + 1) % m == sq.front,队列中当前元素的个数为()
填空题设数组A[m]为循环队列Q的存储空间,font为头指针,rear为尾指针,判定Q为空队列的条件()。