回 帖 发 新 帖 刷新版面

主题:栈问题

设将整数1,2,3,4依次进栈,但只要出栈时栈非空,则可将出栈操作按任何次序夹入
请分析 1,2 ,3 ,4 的24种排列中,哪些序列是可以通过相应的入出栈操作得到的
请教以上问题,有什么规律吗?

回复列表 (共5个回复)

沙发

第一个是4的话,以后就必须是3,2,1了
第一个是3的话,以后的组合2必在1前
就是说已经压进栈里的数的相对顺序是固定的了。
以前做过,忘了……瞎想的

板凳

这样的题一般是选择题吧,规律我考试的时候也没找出来,我是用手试,一个一个试。

另外一个有点意思的题是求出栈排列数。

3 楼

一个一个试验
只要记住先进后出的原则就可以了
把每种情况都列出来
没别的办法

别怕烦啊楼主

4 楼

其实你只要按照栈的规则后进先出的顺序,慢慢来推就可以了,细心点

5 楼

严蔚敏 习题书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条件不能得到 是有效序列 我们老师只教我们这样判断就够了

我来回复

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