顺序进栈乱序出栈的所有可能顺序之算法

题目:设有编号为1,2,3,4的四辆列车,顺序进入一个栈式结构的车站,具体写出这四辆 列车开出车站的所有可能的顺序。
今天看到这个数据结构练习题,一开始认为只有穷举然后验证的方法。
习题后面给出的答案:
至少有14种。
①全进之后再出情况,只有1种: 4,3,2,1 
②进3个之后再出的情况,有3种,3,4,2,1 3,2,4,1 3,2,1,4 
③进2个之后再出的情况,有5种,2,4,3,1 2,3,4,1 2,1,3,4 2,1,4,3 2,3,1,4
④进1个之后再出的情况,有5种,1,4,3,2 1,3,2,4 1,3,4,2 1,2,3,4 1,2,4,3


1-4的所有排列组合有n=4!=24种,然后我们需要依照下面的规律进行筛检:
例3,4,2,1
3后面比3小的数字有1和2,那么出栈的顺序必然是2,1,倒序排列
4后面比4小的是2和1,倒序
2后面比2小的是1,不需要检查
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值