数据结构习题21295
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
栈与队列练习题
一、单项选择题
1.栈和队列的共同特点是()。
A. 都是先进先出
B. 都是先进后出
C. 只允许在端点处插入和删除元素
D. 没有共同点
2.元素A,B,C,D,依次进顺序栈后,栈顶元素是(),栈底元素是()。
A. A
B. B
C. C
D. D
3.栈操作数据的原则是()。
A. 先进先出
B. 后进先出
C. 后进后出
D. 分顺序
4.经过以下栈运算后,x的值是()。
InitStack(s);Push(s,a);Push(s,b);Pop(s,x);Gettop(s,x)
A. a
B. b
C. 1
D. 0
5.设一个栈的输入序列为A,B,C,D,则借助一个栈所得到的输出序列不可能是()。
A. ABCD
B. DCBA
C. ACDB
D. DABC
6.已知一个栈的进栈序列是1,2,3,…,n,其输出序列是p1,p2,…pn,若P1等于n,则pi 的值()
A. i
B. n-i
C. n-i+1
D. 不确定
7.设n个元素进栈序列是1,2,…,n,其输出序列是p1,p2,…,pn,若p1=3,则p2的值()。
A. 可能是2
B. 一定是2
C. 可能是1
D.一定是1
8.经过以下队列运算后,队头的值是()
InitQueue(qu);enQueue(qu,a);enQueue(qu,b);enQueue(qu,c);deQueue(qu)
A. a
B. b
C. 1
D. 0
9.经过以下队列运算后,QueueEmpty(q)的值是()
InitQueue(qu);enQueue(qu,a);enQueue(qu,b);deQueue(qu,x);deQueue(qu,y)
A. a
B. b
C. 1
D. 0
10.元素A,B,C,D顺序连续进入队列qu后,队头元素是(),队尾元素是()。
A. A
B. B
C. C
D. D
11.设循环队列中数组的下标是0~N-1,其头尾指针分别为f和r,则其元素个数为()。
A. r-f
B. R-f-1
C. (r-f)%N+1
D. (r-f+N)%N
-精品
12.判断一个循环队列Q(存放元素位置0~QueueSize-1)队满的条件是()。
A. Q.front= =Q.rear
B. Q.front+1= =Q.rear
C. Q.front= =(Q.rear+1)%QueueSize
D. Q.rear = =( Q.front +1)%QueueSize
13.假设用Q[0…M]实现循环队列,Q[f] 、Q[r]分别为队首元素的前一个位置和队尾位置。
若用“(r+1)%(M+1)= =f”作为队满的标志,则()。
A. 可用“f = =r”作为队空的标志
B.可用“f>r”作为队空的标志
C. 可用“(f+1)%(M+1)= =r”作为队空的标志
D. 队列中最多可以有M+1个元素
二、判断题
1.栈底元素是不能删除的元素()
2.顺序栈中元素的大小是有序的。()
3.在n个元素进栈后,他们的出栈顺序和进栈顺序一定正好相反。()
4.若用S[1]~S[m]表示顺序栈的存储空间,则对栈的进栈、出栈操作最多只能进行m次()5.空栈没有栈顶指针。()
6.顺序队列中有多少元素,可根据队首指针的值和队尾指针的值来计算。()
7.若用“队首指针的值和队尾指针的值相等”作为循环顺序队列为空的标志,则在设置一个空队列时,只需给队首指针和队尾指针赋同一个值,不管什么值都可以。()三、简答题
1.利用两个栈S1,S2模拟一个队列时,如何用栈的元算实现队列的入队、出队以及队列的判空运算?请简述算法思想。
-精品