进栈与出栈

Posted pursuiting

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进栈与出栈相关的知识,希望对你有一定的参考价值。

问题描述:有四个元素abcd依次入初始为空的栈中,入栈之后可停留,可出栈。最后所有元素都出栈,请分析并写出所有可能的分别以a,b,c,d开头的出栈序列。

首先分析以a开头的出栈序列。序列前两位无非3种:ab,ac,ad。再分别分析这三种开头的序列分别对应着几种可能序列。

ab显然有abcd和abdc两种,ac有acbd和acdb两种,而ad只有adcb一种,因为在仅有a在栈外,bcd都在栈内的情况下,栈内从上到下的顺序只有dcb一种,这种情况比较特殊。因此以a开头的出栈序列共有abcd,abdc,acbd,acdb,adcb五种。

按照同样的方法可以得出以b开头的出栈序列有bacd,badc,bcad,bcda,bdca五种。

以c开头的出栈序列有cbad,cbda,cdba三种。

以d开头的出栈序列只有dcba一种。

以上是关于进栈与出栈的主要内容,如果未能解决你的问题,请参考以下文章

用java编写程序,利用线程同步编写一个栈操作程序,包括数据的进栈和出栈。

Android UICanvas 画布 ① ( Canvas 状态栈 | Canvas 状态栈入栈与出栈 | 获取 Canvas 状态栈容量 | Canvas 状态栈原点数据 )

flask 源码专题:请求上下文和应用上下文入栈与出栈

数据结构之进栈出栈操作

数据结构c语言实现进栈出栈及遍历

链栈算法