主题:栈
wang246
[专家分:0] 发布于 2006-04-23 16:18:00
如果进栈的元素序列为1,2,3,4,5,6,能否得到4,3,5,6,1,2和1,3,5,4,2,6的出栈序列?并说明为什么不能得到或如何得到。
回复列表 (共5个回复)
沙发
yunhai13 [专家分:210] 发布于 2006-04-23 17:37:00
4,3,5,6,1,2
根据栈的后进先出原则,如果6都进去后并出来了,1.2的话应该早就出来了,所以不可能的吧
1,3,5,4,2,6
这里一样也不可能应该
板凳
jzyray [专家分:20610] 发布于 2006-04-23 19:10:00
第一个不能,如果1,2调个的话可以。
第二个可以:1in->1out->2in->3in->3out->4in->5in->5out->4out->2out->6in->6out
3 楼
rickone [专家分:15390] 发布于 2006-04-23 21:56:00
第一个不能
第二个可以
4 楼
中国台湾 [专家分:2140] 发布于 2006-04-23 22:09:00
这是我们老师讲的希望对你有帮助
严蔚敏 习题书p23页 3.5题
假设已S和X分别为入栈和出栈的操作,则初态和终态均为栈空的入栈和初栈的操作序列可以表示为仅由X和S组成的序列.称可以操作的序列为合法序列(例如,SXSX为合法序列,SXXS为非法序列)试给出区分给定序列是合法序列或非法序列的一般准则,并证明:两个不同的合法序列不可能得到相同的元素序列.
解法 1字符S个数=字符X个数
2字符S个数+字符X个数=2的N次方;
31<=i<=2的N次方序列前i个字符中S的个数>=X的个数
有效序列可得到1 2 3条件
但由1 2 3条件不能得到 是有效序列 我们老师只教我们这样判断就够了
5 楼
lt19870917 [专家分:750] 发布于 2006-04-24 17:05:00
是道难题
我来回复