栈的相关题目

  1. [单选]

5个不同的元素依次进栈,能得到()种不同的出栈序列。

A. 21

B. 42

C. 24

D. 48

答案:B

解析:

根据栈的数学性质:n个不同的元素进栈,出栈元素不同排列的个数为\frac{1}{n+1}C_{2n}^n。将n=5代入公式,可得共有42种不同的出栈序列

  1. [单选]

若栈的输入序列为abcd,下面四个序列中,不可能为其输出序列的是()

A. dcba

B. abcd

C. dcab

D. cbda

答案:C

解析:

对于某个出栈的元素,在它之前进栈却晚出栈的元素一定是逆序出栈的;那么若出栈序列的第一个元素为d,则出栈序列只能是dcba, 显然C错误

  1. [单选]

设栈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

  1. [单选]

设有一个空栈,栈顶指针为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

  1. [单选]

经过以下栈的操作后,变量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


上一篇:MySQL语句的执行顺序


下一篇:快速排序