先来看个题
设1, 2, 3, 4, 5,6以所给的次序进栈, 若在进栈操作时, 允许出栈操作, 则下面得不到的序列为( )
A. 654321
B. 231654
C. 435621
D. 312456
方法如下:以B为例
- 第一步:用 2 和后边的比,找出比 2 小的数, 2 3 1 6 5 4 ;黄色的数是按照降序排列即为合理。
- 第二步:用 3 和后边的比,找出比 3 小的数, 2 3 1 6 5 4 ;黄色的数是按照降序排列即为合理。
- 第三步:用 1 和后边的比,找出比 1 小的数, 2 3 1 6 5 4 ; 没找到,也为合理。
- 第四步:用 6 和后边的比,找出比 6 小的数, 2 3 1 6 5 4 ;黄色的数是按照降序排列即为合理。
- 第五步:用 5 和后边的比,找出比 5 小的数, 2 3 1 6 5 4 ;黄色的数是按照降序排列即为合理。
- 剩一个,不用比了。在以上比较过程中,都合理,此选项就合理。
再举个不合理的例子:以D为例
- 第一步:用 3 和后边的比,找出比 3 小的数, 3 1 2 4 5 6 ;黄色的数不是按照降序排列的,不合理。该选项不合理!!!
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
接下来多看几个例题
某栈的输入序列为a, b, c, d,下面的4个序列中,不可能为其输出序列的是()。
A. a, b, c, d
B. c, b, d, a
C. d, c, a, b
D. a, c, b, d
选项C不合理
第一步:用 d 和后边的比, 找出比 d 小的,d, c, a, b; 黄色的不是按照降序排列的,不合理