一个序列的进栈顺序为abcde则不可能的出栈顺序为

在找工作做笔试题遇见过好几次类似的题目,所以通过查资料并找了其中一道题目进行记录

题目:

栈是一种先进后出的数据结构,一个序列的进栈顺序为abcde,那么不可能的出栈顺序为(  C)

A. dcbae              B. abcde                   C. adbec                   D. edcba

 

分析:栈的出栈是遵循先进后出的原则,abcde的进栈顺序并不是一次性的按照abcde入栈,也可能是先入栈一部分再出栈一部分在进行入栈,整体的入栈顺序是不变的依然是abcde。所以拿A选项分析,可以是先入栈abcd,再出栈dbca,再入栈e,再出栈e的步骤进行入栈出栈操作。所以不可能的顺序是选项C。
  出栈的元素顺序可以遵守的规律如下: 

  •       在原序列中相对位置比它靠前的,也就是比它先入栈的,出栈顺序必须是逆序; 
  •   在原序列中相对位置比它大的,也就是比它后入栈的,出栈顺序没有要求; 
  •   以上两点可以间插进行。

以选项中出栈的第一个元素为基准,判断它后面的元素是否满足上述规律

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值