栈和队列练习1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章栈和队列
一、选择题部分
1. 一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是(C)。
(A) edcba(B)decba(C)dceab (D)abcde
2.栈结构通常采用的两种存储结构是(A)。
(A)线性存储结构和链表存储结构(B)散列方式和索引方式
(C)链表存储结构和数组(D)线性存储结构和非线性存储结构
3.判定一个顺序栈ST(最多元素为m0)为空的条件是( B)。
(A) ST-〉top!=0 (B)ST-〉top==0
(C)ST-〉top!=m0 (D)ST-〉top=m0
4.判定一个栈ST(最多元素为m0)为栈满的条件是( C)。
(A)ST-〉top!=0 (B)ST-〉top==0
(C)ST-〉top==m0(D)ST-〉top==m0-1
5.一个队列的入列序列是1,2,3,4,则队列的输出序列是( B)。
(A)4,3,2,1(B)1,2,3,4(C)1,4,3,2(D)3,2,4,1
6.循环队列用数组A[0,m-1]存放其元素值,已知其头尾指针分别是front和rear 则当前队列中的元素个数是(B )
(A)(rear-front+m)%m (B) rear-front+1 (C)rear-front-1(D)rear-front
7.栈和队列的共同点是(C )
(A)都是先进后出(B)都是先进先出
(C)只允许在端点处插入和删除元素(D)没有共同点
8.表达式a*(b+c)-d的后缀表达式是(B)。
(A)abcd*+-(B)abc+*d- (C)abc*+d-(D)-+*abcd
9.4个元素a1,a2,a3和a4依次通过一个栈,在a4进栈前,栈的状态,则不可能的出栈序是(C)
(A)a4,a3,a2,a1 (B)a3,a2,a4,a1
(C)a3,a1,a4,a2 (D)a3,a4,a2,a1
10.以数组Q[0..m-1]存放循环队列中的元素,变量rear和qulen分别指示循环队列中队尾元素的实际位置和当前队列中元素的个数,队列第一个元素的实际
位置是( D )
(A)rear-qulen (B)rear-qulen+m
(C)m-qulen (D)(1+rear+m-qulen)% m
二、填空题部分
1.栈的特点是(先进后出),队列的特点是(先进先出)。
2.线性表、栈和队列都是(线性)结构,可以在线性表的(任何)位置插入和删除元素,对于栈只能在(栈顶)插入和删除元素,对于队列只能在(队尾)插入元素和(队头)删除元素。
3.一个栈的输入序列是12345,则栈的输出序列12345是(可能的)。
4.设栈S和队列Q的初始状态皆为空,元素a1,a2,a3,a4,a5和a6依次通过一个栈,一个元素出栈后即进入队列Q,若6个元素出队列的顺序是a3,a5,a4,a6,a2,a1则栈S至少应该容纳( 4 )个元素。
三. 选择题
1. 栈和队列的共同点是_C__
都是先进后出
都是先进先出
只允许在端点处插入和删除元素
没有共同点
2. 一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是
__C_
edcba
decba
dceab
abcde
3. 一个栈的入栈序列是1,2,3,4,则栈的可能的输出序列是__B_
1,4,2,3
2,1,4,3
4,2,1,3
4,2,3,1
4. 一个队列的入对序列是1,2,3,4,则队列的输出序列是_B___
4,3,2,1
1,2,3,4
1,4,3,2
3,2,4,1
5. 若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为
p1,p2,p3,…,pn,若p1=n,则pi为___C_
I
n=I
n-I+1
不确定
6. 表达式a*(b+c)-d的后缀表达式是__B_
abcdd+-
abc+*d-
abc*+d-
-+*abcd
7. 向一个栈顶指针为HS的链栈中插入一个s所指结点时,则执行_C___
HS->next=s;
s->next=HS->next;HS->next=s;
s->next=HS;HS=s;
s->next=HS;HS=HS->next;
8. 从一个栈顶指针为HS的链栈中删除一个结点时,用x保存被删结点的值,则执行___D_
x=HS;HS=HS->next;
x=HS->data;
HS=HS->next;x=HS->data;
x=HS->data;HS=HS->next;
四、填空题
1、在一个具有n个单元的顺序栈中,假设以地址低端(即下标为1的单元)作为栈底,以top作为栈顶指针,则当做堆栈处理时,top变化为 top++ 。
2、在一个具有n个单元的顺序栈中,假设以地址高端(即下标为n 的单元)作为栈底,以top作为栈顶指针,则当作退栈处理时,top变化为 top++ 。
3、在一个循环队列中,队首指针指向队首元素的实际地
址。
4、从循环队列中删除一个元素时,其操作是
Q.front=(Q.front+1) % MAXSIZE
。
5、在具有n个单元的循环队列中,队满时共有 n-1 个元素。
6、一个栈的输入序列是1,2,3,4,5,则栈的输出序列4,3,5,1,2是
不可能的。
7、一个栈的输入序列是1,2,3,4,5,则栈的输出序列1,2,3,4,5是
可能的。