容量为m的循环队列Q,队尾位置是rear,则入队时对rear的操作是()。
A.Q.rear=Q.rear-1
B.Q.rear=(Q.rear-1)%m
C.Q.rear=Q.rear+1
D.Q.rear=(Q.rear+1)%m
A.Q.rear=Q.rear-1
B.Q.rear=(Q.rear-1)%m
C.Q.rear=Q.rear+1
D.Q.rear=(Q.rear+1)%m
第3题
(1)写出队满的条件表达式;
(2)写出队空的条件表达式;
(3)设m=40,rear=13,quelen=19,求队头元素的位置;
(4)写出一般情况下队头元素位置的表达式。
第4题
A.Q.front=Q.front-1
B.Q.front=(Q.front-1)%m
C.Q.front=Q.front+1
D.Q.front=(Q.front+1)%m
第5题
A.rear==front
B.(front+1)%n==rear
C.rear+1==front
D.(rear+1)%n==front
第6题
A、q.rear-q.front
B、q.rear-q.front+1
C、(q.rear-q.front)%maxSize+1
D、(q.rear-q.front+maxSize)%maxSize
第7题
A.1和5
B.2和4
C.4和2
D.5和1
第8题
第9题
A、带有队头指针和队尾指针的循环单链表
B、带有队头指针和队尾指针的非循环单链表
C、只带队头指针的循环单链表
D、只带队头指针的非循环单链表
第10题
阅读下列算法,并回答问题:
(1)Q、Q1和Q2都是队列结构,设队列Q=(1,0,-5,2,-4,-6,9),其中1为队头元素,写出执行f31(&Q,&Q1,&Q2)之后队列Q、Q1和Q2的状态;
(2)简述算法f31的功能。
(注:InitQueue、EnQueue、DeQueue和QueueEmpty分别是队列初始化、入队、出队和判队空的操作)
void f31(Queue*Q,Queue*Q1,Queue*Q2){
int e;
InitQueue(Q1);
InitQueue(Q2);
while(!QueueEmpty(Q)){
e=DeQueue(Q);
if(e>=0)EnQueue(Q1,e);
else EnQueue(Q2,e);
}
}