栈输入输出规律总结

      我们都知道栈是先进后出的,最近总遇见这样的题型,原则是“先进后出”,但做题总漏掉

       现以四个为例:设链栈的输入序列为A B C D,试写出所得到的所有可能的输出序列。

      解:从A先出栈开始考虑所有情况,然后在A出的接触上接着考虑B出的情况,直到最后;然后考虑B先出的情况,在B先出的基础上剩余的按小到大的顺序考虑。

       (一)A先出

                (1)A先出基础上B出有:ABCD、ABDC

                (2)A先出基础上C出有:ACBD、ACDB、ADCB

                (3)A先出基础上D出有:ADCB

        同理有B先出:BACD、BADC、BCAD、BCDA、BDCA

               有C先出:CBAD、CBDA、CDBA

               有D先出:DCBA


      检查正误的规律:先出来的序号后面一定不能有比他本身小的从小到大排列的序列。

      例:在此题中ADBC不是解 ,如图:

             

同样的:

      BDAC不是解,因为AC都小于D,且AC是从小到大排列;

      CABD不是解,因为AB都小于C,且AB是从小到大排列;

      CADB不是解,因为AB都小于C,且AB是从小到大排列,(尽管他们中间隔着D;)

      CDAB不是解,因为AB都小于C,且AB是从小到大排列;

      DABC不是解,因为ABC都小于D,且ABC从小到大排列;

      DACB不是解,因为ACB都小于D,且AB从小到大排列;

      DBAC不是解,因为BAC都小于D,且AC从小到大排列;

      DBCA不是解,因为BCA都小于D,且BC从小到大排列;

      DCAB不是解,因为CAB都小于D,且AB从小到大排列。

      

  • 21
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 44
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值