![](https://static.youtibao.com/asksite/comm/h5/images/m_q_title.png)
设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5和e6,依次通过栈S,一个元素出栈后即进队列Q,若6个元素出队
![](https://static.youtibao.com/asksite/comm/h5/images/solist_ts.png)
设循环队列的存储空间为Q(1:m),初始状态为空。现经过一系列正常的入队与退队操作后,front=m,rear=m-1,此后从该循环队列中删除一个元素,则队列中的元素个数为()。
A.m-2
B.1
C.m-1
D.0
阅读下列算法,并回答问题:
(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);
}
}
简述以下算法的功能(栈和队列的元素类型均为int)。
void algo(Queue&Q)
{
Stack S;
int d;
IntStack(S);
While(!StackEmpty(S))
{
Pop(S,d);
EnQueue(Q,d);
}
}
设循环队列为Q(1:m),其初始状态为front=rear=m。经过一系列入队与退队运算后,front=30,rear=10。现要在该循环队列中作顺序查找,最坏情况下需要比较的次数为()。
A.19
B.20
C.m-19
D.m-20
试证明:
设E是由n个元素形成的集合.E1,E2,…,En+1是E的非空子集,则存在r,s个不同指标:
i1,i2,…,ir;j1,j2,…,js,
使得Ei1∪…∪Eir=Ej1∪…∪Ejs.
当可控RS触发器[教材图21.1.4(a)]的C,S和R端加上图21.22所示的波形时,试画出Q端的输出波形。设初始状态为0和1两种情况。