关于出栈入栈顺序面试题

一个栈的入栈序列式为54321,请选出以下不可能的出栈序列(D)

A.23451        B.45123        C.45321        D.23154

解题思路:先进后出,后进先出,可以把栈想成一个竖着的桶,先放进去的被压在最底下,所以要最后出来,后放进去的在最上面,要先出来。

答案A:23451,先出栈的为2,证明2之前的已经入栈了,否则不能轮到2入栈,

8b4f3cb3d2a2d9aebb6f394af528175fc11.jpg 所以2先出栈,接着3,4,5依次出栈,1入栈,1出栈,所以A正确。

答案B.45123,先出栈的为4,证明4之前的已经入栈了,

f03bf3e37776fc426c0d1c1b5d0511e0587.jpg 4先出栈,接着5出栈,3,2,1依次入栈,1,2,3再出栈  ,所以B正确。

答案C.45321 ,先出栈的为4,证明4之前的已经入栈了,

f03bf3e37776fc426c0d1c1b5d0511e0587.jpg 4先出栈,接着5出栈,3入栈,3出栈,2入栈,2出栈,1入栈,1出栈,所以C正确。

答案D:23154,先出栈的为2,证明2之前的已经入栈了,否则不能轮到2入栈,

8b4f3cb3d2a2d9aebb6f394af528175fc11.jpg2出栈,3出栈,1入栈,1出栈,接着应该4出栈,5被压在4下面,所以5不可能比4先出栈,所以D错误。

如有不对请多指教。

 

转载于:https://my.oschina.net/u/3716995/blog/3031343

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值