首页 > 试题广场 >

可能的出栈序列是

[单选题]
若进栈序列为1,2,3.4假定进栈和出栈可以穿插进行,则可能的出栈序列是()
  • 2,4,1,3
  • 3,1,4,2
  • 3,4,1,2
  • 1,2,3,4
我觉得这种入栈和出栈顺序的问题是很简单的了,反正记住“后进先出”原则就可以了
发表于 2016-04-05 23:12:40 回复(0)
个人分析的,如果有错请指正:
       原则:如果想要后面的先出栈,那么按照1234的入栈顺序,前面的必须已经入栈,比如要让3第一个出栈,那么入栈顺序为:
1入栈,2入栈,3入栈,之后3出栈,这样3就是第一个出栈的,如果想让4接着出栈,那么就4入栈,然后再出栈,然后2出栈,1出栈
最后出栈顺序为:
3421
以此规则分别分析ABCD
A 表示:
1入栈,2入栈,2出栈,3入栈,4入栈,4出栈,后面3必须先出栈,1才能出栈,所以A错
B表示:
1入栈,2入栈,3入栈,3 出栈,后面2必须先出栈,1才能出栈,所以B错
C表示:
1入栈,2入栈,3入栈,3 出栈, 4入栈,4出栈, 后面2必须先出栈,1才能出栈,所以C错
D表示:
1入栈,1出栈, 2入栈,2 出栈, 3入栈,3 出栈, 4入栈,4出栈,正确
发表于 2015-09-11 19:41:47 回复(3)
zio头像 zio
对于每一个数字, 其后比他小的数字均为降序排列
发表于 2017-09-01 16:51:28 回复(0)
验证A:1入栈,2入栈,2出栈,3入栈,4入栈,4出栈,此时没有元素入栈,再次出栈的元素为3,1。所以A错误,正确的顺序是:2431。
验证B:1入栈,2入栈,3入栈,3出栈,此时栈中的元素自底向上为1,2,如果要1出栈,则必须先2出栈。
验证C:1入栈,2入栈,3入栈,3出栈,4入栈,4出栈,此时栈中的元素自底向上为1,2,如果要1出栈,则必须先2出栈。
验证D:1入栈,1出栈,2入栈,2出栈,3入栈,3出栈,4入栈,4出栈。正确。
发表于 2016-02-11 20:58:09 回复(0)
知道先进后出 同理拿着答案对问题  就可以很明显的发现问题所在了

发表于 2022-12-26 17:27:43 回复(0)
<p>可能的种数是C(n,2n)/n+1,可能的每一种都是:对于其后每一个比它小的数字都是降序排列。</p>
发表于 2020-07-06 19:12:03 回复(0)
后进先出,这是大的原则。进栈序列为1 ,2,3,4,,那么以A选项来说:就一定不会出现1 在3前面出现
发表于 2016-04-21 10:52:41 回复(0)
对于任意正确的出栈序列,应满足,对于任意一个先出栈的k,任意后出栈的i和j,若i<k且j<k,则i和j应按进栈序列逆序出栈
发表于 2016-03-19 19:23:29 回复(0)
选项D      1234进,4321出。
选项A       4先出,说明3已经进栈,所以不可能比1先出栈;
选项B        3先出,说明12已经进栈,所以1不能比2先出栈;
选项C       与选项B 同理:在3 、4先出栈的情况下,1不能比2先出栈。
发表于 2015-09-11 16:31:19 回复(0)