- [单选]
5个不同的元素依次进栈,能得到()种不同的出栈序列。
A. 21
B. 42
C. 24
D. 48
答案:B
解析:
根据栈的数学性质:n个不同的元素进栈,出栈元素不同排列的个数为\frac{1}{n+1}C_{2n}^n。将n=5代入公式,可得共有42种不同的出栈序列
- [单选]
若栈的输入序列为abcd,下面四个序列中,不可能为其输出序列的是()
A. dcba
B. abcd
C. dcab
D. cbda
答案:C
解析:
对于某个出栈的元素,在它之前进栈却晚出栈的元素一定是逆序出栈的;那么若出栈序列的第一个元素为d,则出栈序列只能是dcba, 显然C错误
- [单选]
设栈S的初始状态为空,元素abcdefg依次进入栈S,若出栈顺序是bedcfag,则栈S的容量至少是()
A. 2
B. 3
C. 4
D. 5
答案:C
解析:
由题意可得:元素的入栈出栈次序为push(a),push(b),pop(b),push(c),push(d),push(e),pop(e),pop(d),pop(c),push(f),pop(f),pop(a),push(g),pop(g);已知栈S初始容量为0,每做一次push操作进行加1操作,每做一次pop操作进行减1操作,记录容量的最大值为4,故选C
- [单选]
设有一个空栈,栈顶指针为1500H,每个元素需要一个存储单元,执行push、push、pop、push、push、pop、pop、push、push、pop、push操作后,栈顶指针的值为()
A. 1501H
B. 1502H
C. 1503H
D. 1504H
答案:C
解析:
每个元素需要一个存储单元,所以每次入栈一次top加1,出栈一次top减1。题目中进行了7次push操作,4次pop操作,7-4=3,那么现在栈顶指针为1503H
- [单选]
经过以下栈的操作后,变量y的值为()
InitStack(s);push(s,a);push(s,b);pop(s,b);push(s,c);pop(s,y);top(s,y)
A. a
B. b
C. c
D. d
答案:A
解析:
执行前5句后,栈s内的值为a,c,其中c为栈顶元素;执行第6句后,栈顶元素c出栈,y的值为c;执行最后一句,获取栈顶元素的值,y的值为a