求进栈顺序求出栈顺序。。。。。。。。。

请问入栈和出栈的进栈顺序求出棧顺序是什么样的进栈顺序求出栈顺序假设依次进去1,2,3,4。要求先进入的必须等到后进入的出来之后才能出来请问是否只有4,3,2,1这一种出栈方法?

可以了解一下栈这种数据结构遵循先进后出,先进在栈底后进在栈顶,例如你说的12341要出来,必须先将432分别出栈才可以

这个问题需要明确入栈的同时是否允许出栈,如果是数据全部入栈后才能出栈入栈进栈顺序求出栈顺序为1234,那么出栈进栈顺序求出栈顺序只能昰4321如果入栈的同时允许出栈,那么出栈的进栈顺序求出栈顺序队列就有好几个

1先进去,然后1出来之后2进去,2出来你也可以先放入12,然后取出2在放入3,取出3等等总之有很多入出进栈顺序求出栈顺序,先进后出原则

按照我们老师的说法,压栈就是往死胡同里推车要想让车出来,只有最后进去的一辆退出去倒数第二辆才能出去,然后以此类推第一辆进去的车最后才能出去。

}
栈的排列遵循先进后(即后进先絀)出的原则
因为P1是n是出栈的第一个数字,说明在n之前进栈的数字都没有出栈所以这个进栈顺序求出栈顺序是确定的。还可以知道朂后出栈的一定是数字1,也就是Pn代入这个式子n-i+1,是正确的
}

假设栈的输入序列为1、2、3、...、n設计算法求出所有可能的出栈序列(合法序列)。 

我使用递归来完成主要思想:从1到n输入,每一个数只对应两个操作一个是入栈,一個是出栈(输出)我用一个栈保存入栈元素,一个数组保存出栈元素(这里也可以使用栈但是输出元素时,需要从反向输出) 

}

我要回帖

更多关于 进栈顺序求出栈顺序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信