数据结构与算法-栈练习

单选题

1-1

通过对堆栈S操作:Push(S,1), Push(S,2), Pop(S), Push(S,3), Pop(S), Pop(S)。输出的序列为:123。

F

注:应是231

Push(S,1), Push(S,2), Pop(S), Push(S,3), Pop(S), Pop(S)

1入 2入 2出 3入 3出 1出

1-2

若一个栈的输入序列为1,2,3,…,N,输出序列的第一个元素是i,则第j个输出元素是j−i−1。

F

注:一串数据依次通过一个栈,并不能保证出栈数据的次序总是倒置,可以产生多种出栈序列。一串数据通过一个栈后的次序由每个数据之间的进栈、出栈操作序列决定,只有当所有数据“全部进栈后再全部出栈”才能使数据倒置。事实上,存在一种操作序列――“进栈、出栈、进栈、出栈……”――可以使数据通过栈后仍然保持次序不变。
题目中输出序列的第一个元素是i,则第j个输出元素是不确定的。
 

1-3

若一个栈的输入序列为{1, 2, 3, 4, 5},则不可能得到{3, 4, 1, 2, 5}这样的出栈序列。

T

注:3第一个出就代表   

1,2此时还在栈内

故2一定在1前面出栈

1-4

栈顶元素和栈底元素有可能是冋一个元素。

T

注:例 当只剩下一个元素时,栈顶即为栈底

选择题

2-1

若元素a、b、c、d、e、f依次进栈,允许进栈、退栈操作交替进行,但不允许连续三次进行退栈工作,则不可能得到的出栈序列是?

A.b c a e f d

B.c b d a e f

C.d c e b f a

D.a f e d c b

D

2-2

有六个元素以6、5、4、3、2、1的顺序进栈,问哪个不是合法的出栈序列?

A.2 3 4 1 5 6

B.3 4 6 5 2 1

C.5 4 3 6 1 2

D.4 5 3 1 2 6

B

2-3

若一个栈的入栈序列为1、2、3、…、N,输出序列的第一个元素是i,则第j个输出元素是:

A.i−j−1

B.i−j

C.j−i−1

D.不确定

D

2-4

将5个字母ooops按此顺序入栈,则有多少种不同的出栈顺序可以仍然得到ooops

A.1

B.3

C.5

D.6

C

2-5

设一个堆栈的入栈顺序是1、2、3、4、5。若第一个出栈的元素是4,则最后一个出栈的元素必定是:

A.1

B.3

C.5

D.1或者5

D

2-6

给定一个堆栈的入栈序列为{ 1, 2, ⋯, n },出栈序列为{ p1​, p2​, ⋯, pn​ }。如果p2​=n,则存在多少种不同的出栈序列?

A.1

B.2

C.n−1

D.n

C

2-7

以下不是栈的基本运算的是( )。

A.删除栈顶元素

B.删除栈底元素

C.判断栈是否为空

D.将栈置为空栈

B

2-8

一个递归的定义可以用递归过程求解,也可以用非递归过程求解,但单从运行时间来看, 通常递归过程比非递归过程( )。

A.较快

B.较慢

C.相同

D.无法确定

B

递归采用的是栈堆积的方式进行运算,每一次调用递归,内存都不断堆积,直到最后才求解,因此占用内存大,计算量成倍增加。所以递归过程较慢。

2-9

设顺序栈的栈顶指针(int 类型)指向栈顶元素位置,则判断一个栈ST(最多元素为MaxSize)为栈满的条件是()。

A.ST.top != -1

B.ST.top == -1

C.ST.top != MaxSize - 1

D.ST.top == MaxSize - 1

D

2-10

假设一个栈的输入序列是1,2,3,4,则不可能得到的输出序列是( )。

A.1,2,3,4

B.4,1,2,3

C.4,3,2,1

D.1,3,4,2

B

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值