若用Q[1]~Q[100]作为循环队列的存储空间,Q[f]、r分别表示队头元素和下一个插入位置,则当f=70,r=20时,队列中共有 个元素。
第1题:
数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素的公式为
A. r-f
B. (n+f-r)% n
C. n+r-f
D. (n+r-f)% n
第2题:
A.f==r
B.(f+1)%(m+1)==r
C.(r+1)%(m+1)==f
D.(r+1)% m==f
第3题:
循环队列A[0…m-1)存放其元素,用front和Feat分别表示队头和队尾,则循环队列满的条件是(35)。
A.Q.rear+1==Q.front
B.Q.rear==Q.front+1
C.Q.rear==Q.front
D.(Q.rear+1)%m==Q.front
第4题:
数组Q[0,1,2,…,n]用来表示一个循环队列,f为当前队头元素的前一位置,r为队尾元素的位置,假定队列中元素的总个数小于n,计算队列中元素个数的公式为______。
A.r-f
B. n+f-r
C. n+r-f
D. (n+r-f)mod n
第5题:
阅读以下说明和C函数,填补函数代码中的空缺(1)~(5),将解答填入答题纸
的对应栏内。
【说明】
队列是一种常用的数据结构,其特点是先入先出,即元素的插入在表头、删除在表
尾进行。下面采用顺序存储方式实现队列,即利用一组地址连续的存储单元存放队列元
素,同时通过模运算将存储空间看作一个环状结构(称为循环队列)。
设循环队列的存储空间容量为MAXQSIZE,并在其类型定义中设置base、rear和
lengtb三个域变量,其中’base为队列空间的首地址,rear为队尾元素的指针,length表
示队列的长度。
define maxqstze 100
typedef 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*/
第6题:
第7题:
第8题:
数组Q[n]用来表示一个循环队列,front为队头元素的前一个位置,rear为队尾元素的位置,计算队列中元素个数的公式为()。
第9题:
设循环队列的元素存放在一维数组Q[0‥30]中,队列非空时,front指示队头元素的前一个位置,rear指示队尾元素。如果队列中元素的个数为11,front的值为25,则rear应指向()元素。
第10题:
设顺序循环队列Q[0:M-1]的头指针和尾指针分别为F和R,头指针F总是指向队头元素的前一位置,尾指针R总是指向队尾元素的当前位置,则该循环队列中的元素个数为()
第11题:
第12题:
R-F
F-R
(R-F+M)%M
(F-R+M)%M
第13题:
A.r-f
B.r-f-1
C.(r-f)%N+1
D.(r-f+N)%N
第14题:
● 设循环队列Q 的定义中有 rear 和len两个域变量,其中 rear 表示队尾元素的指针,len 表示队列的长度,如下图所示(队列长度为 3,队头元素为 e) 。设队列的存储空间容量为M,则队头元素的指针为 (57) 。
(57)
A. (Q.rear+Q.len-1)
B. (Q.rear+Q.len-1+M)%M
C. (Q.rear-Q.len+1)
D. (Q.rear-Q.len+1+M)%M
第15题:
设循环队列Q的定义中有front和size两个域变量,其中front表示队头元素的指针,size表示队列的长度,如下图所示(队列长度为3,队头元素为x,队尾元素为z)。设队列的存储空间容量为M,则队尾元素的指针为 (58)。
A.(Q.front+Q.size-1)
B.(Q.front+Q.size-1+M)%M
C.(Q.front-Q.size)
D.(Q.front-Q.size+M)%M
第16题:
数组Q[0...n-1]作为一个环形队列,f为当前队头元素的前一位置,r为队尾元素的位置,则队列中元素个数的计算公式是 ______。
A.r-f
B.n+f-r
C.n+r-f
D.(n+r-f)mod n
第17题:
第18题:
第19题:
数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素的公式为()
第20题:
用数组Q表示一个环形队列,f为当前对头元素的钱一位置,r为队尾元素的位置。假定队列中元素个数总小于n,求队列中元素个数公式是()。
第21题:
一个循环队列Q的存储空间大小为M,其队头和队尾指针分别为front和rear,则循环队列中元素的个数为:()。
第22题:
r-f;
(n+f-r)%n;
n+r-f;
(n+r-F.%n
第23题:
r-f
(n+f-r)%n
n+r-f
(n+r-f)%n
第24题: