数组q[M]存储一个循环队,first和last分别是首尾指针,如果使元素x进队操作的语句为“q[last]=x,last=(last+1)%m;”那么判断队满的条件是_____。
A.last= =first
B.last= =M-1
C.(last+1)%m= =first
D.last+1= =first
第1题:
:Afront=front+1
Bfront=(front+1)% m
Crear=(rear+1)%m
Dfront=(front+1)%(m+1)
第2题:
设数组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);
第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题:
阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。
[说明]
链式存储的队列称为链队。根据队列的FIFO原则,为了操作上的方便,可以使用带头指针front和尾指针rear的单链表来实现链队。若链队元素的数据类型为datatype,则链队结构描述如下:
typedef struct node
{ datatypedata;
structnode *next;
} QNode; /*链队结点的类型*/
typedef struct
{ QNnode *front,*rear;
} LQueue; /*将头尾指针封装在一起的链队*/
以下这种链队的几个例子:
设q是一个指向链队的指针,即LQueue *q。下面各函数的功能说明如下:
(1) LQueue *Init_LQueue():创建并返回一个带头尾结点的空链队;
(2) intEmpty_LQueue( LQueue *q):判断链队q是否空;
(3) void In_LQueue(LQueue *q, datatypex):将数据x压入链队q;
(4) int Out_LQueue(LQuere *q, datatype *x):弹出链队q的第一个元素x,若成功则返回返回1否则返回0。
[函数]
LQueae *Init_LQueue()
{ LQueue *q, *p;
q=malloc(sizeof(LQueue)); /*申请链队指针*/
P=malloc(sized(QNode));/*申请头尾指针结点*/
p->next=NULL;
(1)=p;
return q;
}
int Empty_LQueue(LQueue *q)
{ if(q->front (2) q>rear) return 0;
else return 1;
}
void In_LQueue(LQueue *q, datatype x)
{ QNoda *p;
p=malloc(sizeof(QNnode));/*申请新接点*/
p->data=x;
p->next=NULL;
(3)=p;
q->rear=p;
}
int Out_LQueue(LQueue *q, datatype *x)
{ QNnode *p;
if(Empty_LQueue(q)) return 0; /*队空,操作失败*/
else{
p=q->front->next;
*x=(4);
(5)=p->next;
free(p);
if (q->front->next= =NULL)q->rear=q->front;
return 1;
}
}
第5题:
设数组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)
第6题:
第7题:
对于一个以顺序实现的循环队列Q[0…m-1],队头、队尾指针分别为f、r,其判空的条件是(),判满的条件是()。
第8题:
在一个循环顺序队列Q中,判断队空的条件为(),判断队满的条件为()。
第9题:
一个循环队列Q的存储空间大小为M,其队头和队尾指针分别为front和rear,则循环队列中元素的个数为:()。
第10题:
rear = rear+1
rear = (rear+1)%m
front = (front+1)%m
rear = (rear+1)%m + 1
第11题:
第12题:
第13题:
设数组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);
第14题:
A.f==r
B.(f+1)%(m+1)==r
C.(r+1)%(m+1)==f
D.(r+1)% m==f
第15题:
某循环队列的存储空间为Q(4:m),初始状态为front=lea/"=m。现经过一系列的人队操作和退队操作后,front=m,r6ar=m一1,则该循环队列中的元素个数为( )。
A.m一1
B.m
C.1
D.0
第16题:
设循环队列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
第17题:
循环队列Q(n:m)满足哪个条件时,可以判断队列为? ( )
A.队尾指针=0
B.排头指针=0
C.队尾指针=排头指针
D.以上条件均不充分
第18题:
第19题:
在一个顺序存储的循环队列Q[0…M-1],头尾指针分别是front和rear,判断队空的条件为(),判断队满的条件为()。
第20题:
假设以数组Q[m]存放循环队列中的元素,同时以rear和length分别只是循环队列中的队尾位置和队列中的所含元素的个数,则该循环的队列的对满条件为()。
第21题:
第22题:
第23题:
front=front+1
front=(front+1)%(m-1)
front=(front-1)%m
front=(front+1)%m
第24题: