数据结构第3章练习题.ppt
第3章练习题1.栈和队列的共同点是()A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点2.4个元素a、b、c和d依次入栈,入栈过程中允许元素出栈,假设某一时刻栈的状态是c(栈顶)、b、a(栈底),则不可能的出栈顺序是()。A.d,c,b,aB.c,b,d,aC.c,a,d,bD.c,d,b,a3.向一个栈顶指针为Top的链栈中插入一个p所指结点时,其操作步骤为()A.Top-next=p;B.p-next=Top-next;Top-next=p;C.p-next=Top;Top=p;D.p-next=Top;Top=Top-next;4.在顺序循环队列中,队尾指针指向队尾元素的()位置A.前一个B.后一个C.当前D.以上都不对CCCB5.设有一顺序栈S,元素a,b,c,d,e,f依次进栈,如果6个元素出栈的顺序是b,d,c,f,e,a,则栈的容量至少应该是()A.2B.3C.5D.66.若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为()。A.1和5B.2和4C.4和2D.5和17.循环队列A[0..m-1]存放其元素值,用front和rear分别表示队头和队尾,则当前队列中的元素数是()A.(rear-front+m)%mB.rear-front+1C.rear-front-1D.rear-frontBBA8.循环队列存储在数组A[0..m]中,则入队时的操作为()A.rear=rear+1B.rear=(rear+1)%(m-1)C.rear=(rear+1)%mD.rear=(rear+1)%(m+1)9.判定一个循环队列Q(存放元素位置0~MaxSize-1)队满的条件是()==Q.rearB.Q.rear==(Q.front+1)%MaxSize==(Q.rear+1)%MaxSizeD.Q.front+1==Q.rear10.用一个大小为N的数组来实现循环队列Q,则该循环队列为空的条件是()。A.Q.front==Q.rearB.Q.rear+1==Q.frontC.(Q.rear+1)%N==Q.frontD.(Q.front+1)%N==Q.rearDCA11.一个队列的入列序列是1,2,3,4,则队列的输出序列是()。A、4,3,2,1B、1,2,3,4C、1,4,3,2D、3,2,4,112.以下代码段是最大长度为N的循环队列Q的入队操作,请补充完整。 StatusEnQueue(SqQueueQ,QElemTypee) { if()returnERROR;//队列满 Q.base[Q.rear]=e; ();//队尾后移一位 returnOK; }(Q.rear+1)%N==Q.front;Q.rear=(Q.rear+1)%N;B13.设循环顺序队列用数组A[7](下标从0开始编号)存放其元素值,且当前队尾rear和队头front的值分别为1和5,当从队列中删除2个元素,再加入4个元素后,rear的值为(),front的值为(),当前队列的长度为()。14.设循环队列的容量为40(序号从0到39),现经过一系列的入队和出队运算后,有①front=11,rear=19;②front=19,rear=11;问在这两种情况下,循环队列中各有元素多少个?505答:①L=(19-11+40)%40=8答:②L=(11-19+40