回 帖 发 新 帖 刷新版面

主题:栈

如果进栈的元素序列为1,2,3,4,5,6,能否得到4,3,5,6,1,2和1,3,5,4,2,6的出栈序列?并说明为什么不能得到或如何得到。

回复列表 (共5个回复)

沙发

4,3,5,6,1,2
根据栈的后进先出原则,如果6都进去后并出来了,1.2的话应该早就出来了,所以不可能的吧
1,3,5,4,2,6
这里一样也不可能应该

板凳

第一个不能,如果1,2调个的话可以。
第二个可以:1in->1out->2in->3in->3out->4in->5in->5out->4out->2out->6in->6out

3 楼

第一个不能
第二个可以

4 楼

这是我们老师讲的希望对你有帮助
严蔚敏 习题书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 楼

是道难题

我来回复

您尚未登录,请登录后再回复。点此登录或注册