整形数字元素1,2,3依次进栈,有几种出栈顺序?

3个整形数字元素1,2,3依次进栈,请问有几种出栈顺序?
老师说答案是5.
为什么啊,不是6吗?

4个回答

(1)3个均入栈后才可出栈
1(in)、2(in)、3(in)、3(out)、2(0ut)、1(out)
(2)2个先入栈后才可以出栈
1(in)、2(in)、2(0ut)、1(out)、3(in)、3(out)
1(in)、2(in)、2(0ut)、3(in)、3(out)、1(out)
(3)1个先入栈后才可出栈
1(in)、1(out)、2(in)、2(0ut)、3(in)、3(out)
1(in)、1(out)、2(in)、3(in)、3(0ut)、2(out)

5种,公式是 (2n)!/(n!(n+1)!),出栈顺序如下
1、1,2,3
2、1,3,2
3、2,1,3
4、2,3,1
5、3,2,1

u012505618
cxlovu 不会出现你说的这种情况,栈是先进后出,3第一个出栈的话2进栈的时间一定晚于1不可能比1还晚再出栈
4 年多之前 回复
u012505618
cxlovu 回复暮婉歌: 为什么
4 年多之前 回复
qq_27831145
暮婉歌 3,1,2为什么不可以啊
4 年多之前 回复

为什么会是6呢?抛开公式不谈,你可以枚举。你要知道,如果是3第一个出栈的话,那么1,2的出栈顺序实际上已经确定了,也就是说3第一个出栈
只有一种情况。那么总的情况数应该是2+2+1=5

1.进一个出一个 1、2、3
2.一次进去,一次出来 3、2、1
3. 先进1,出1。2和3一次进 1、3、2
4.1,2一次进,一次出,3再进 2、1、3
5.1先进不出,2、3一次进,一次出,1再出 2、3、1

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问