数据结构经典问题——出栈顺序
来源:互联网 发布:中职网络的主题班会 编辑:程序博客网 时间:2024/06/15 20:25
声明一下我写博客的初衷:不是炫耀,而是回报。因为我在计算机方面的知识好多都从网上找到答案,因此我也
将自己搜寻整理的材料,自己写的材料,展示到网上,算是尽一份力吧。
一个经典问题如下(不愿意看思路的可以直接看红色字体部分):
一个栈的入栈序列是a,b,c,d,e则栈的不可能的输出序列是:()
A edcbd B decba C dceab D abcde
栈之根本——先进后出(first in,lastout)初次接触到这个问题的人,或许会认为入栈abcde,所以出栈只能是edcba所以BCD都不对。
其实是这个问题描述有歧义,应该是分段入栈的顺序,也就是说,可能先入栈a,取出a,入栈b,取出b……,所以D也是可能的。
知道这个意思了以后,就要明确这个问题的矛盾根本所在:第一次出栈d,说明什么?说明a,b,c一定早已入栈(入栈顺序决定的)。那么在出栈d以后,a,b,c的出栈顺序一定是c,b,a,而不用理会中间穿插着出栈了d后面的字符(因为可以再入栈,再出栈嘛)。所以立即选中C,不用犹豫,理由简单:d出栈了,abc一定已经入栈,那么abc只能以cba的顺序出栈,C不符合,OK!This problem is so esay, Thanks for my teacher Wang Shanshan.
栈就像个筒子 只能从最外面一个一个的出来
ABCD一次进栈从栈口到里面是DCBA
如果是多选的话 那就是没有一次性放完··
A :A> B> B< C> C< A< D> D< BCAD
B:A> B> C> C< D> D< B< A< CDBA
C: A> A< B> B< C> C< D> D< ABCD
>表示进 <表示出
以此类推···
1。EDCBA 2。DECBA 3。DCEAB 4。ABCDE
选3
堆栈讲究先进后出,后进先出
选项1是abcde先入栈,然后依次出栈,正好是edcba
选项2是abcd先依次入栈,然后d出栈,e再入栈,e出栈
选项3是错误的,不可能a先出栈
选项4是a入栈,然后a出栈;b再入栈,b出栈。。。。。。依此类推
- 数据结构经典问题——出栈顺序
- 出栈顺序问题
- 数据结构——栈—出栈顺序的可能情况
- 【数据结构】判断出栈顺序的合法性
- NOJ1098Rails——出栈顺序
- 数据结构 — 2.顺序表删除问题
- 数据结构——顺序栈
- 数据结构——顺序栈
- 数据结构——顺序栈
- 数据结构——顺序栈
- 数据结构顺序栈的入栈与出栈
- 数据结构—顺序串
- 数据结构—顺序表
- CIL之——入栈和出栈顺序
- Java实现——判断数组出栈顺序
- 数据结构——顺序栈,双向顺序栈,链栈
- 数据结构——Josephus问题顺序表实现
- 数据结构——栈之顺序栈
- Oracle 11g 精简客户端(转)
- 移动开发之iOS基础开发(一)
- 程序员的职业规划
- How to Cluster Magento, nginx and MySQL on Multiple Servers for High Availability
- [黑马程序员]集合--TreeSet
- 数据结构经典问题——出栈顺序
- java 线程通讯 主线程运行10次接着子线程运行5次,如此反复运行20次代码实现
- 程序员职业规划问题《程序员》
- 题目1361:翻转单词顺序
- asp.net页面之间传递的方式
- 软件工程师的务实职业生涯规划
- (39)FileInputStream和FileOutputStream实现复制本文件到指定文件
- 微软100题-天天做-第16题
- jquery 将汉字转换成UTF-8