1、如果若进栈序列为1 2 3 4,2,3,4,5,6,试问能否通过栈得到以下两个出栈序列:4,3,5,6,1,

6->压入6压入5,压入4压入3,压入2弹出2弹出3弹出4,压入1弹出1弹出5弹出6

六个元素6,5,4,3,2,1顺序入栈,看清题目顺序这题出的有点坑,一不小心就以惯性思维的认为是 12,34,56

新手表示看蒙圈了......看了评论,表示更加蒙圈了/(ㄒoㄒ)/~~

B是错误的ACD是正确的。对于4、5、3、1、2、6.4是第一个出栈的元素。很明显·1是棧底的元素,2是栈底的后一个元素所以2应该在1的前面出栈。所以4、5、3、1、2、序列是错误的

step1:第一个出栈的是:4

step2:入栈的次序是654321,找到4所在的位置

step3:5,6这两个元素在4之前先入栈并且6比5先入栈,那么出栈的时候必定5比6先出栈,那么以4开头出栈的序列形式为4***5***6***。看一下B选项5在6前面,没问题

step4:3,2,1这三个元素在4之后入栈,那么将这三个元素出栈可以看成新的序列入栈回到step1继续分析。

冯淡!竟然反着写来诈我!

好吧把压入顺序看反了。

卧槽居然看成了1,2,3,4,5,6一次入栈,看了评论发现都是神人啊,我咋错的都知道这尼玛就尴尬了

答案是C请仔细閱读题目

入栈顺序为6,5,4,3,2,1,这是迷惑人的地方

B应该错误C应该对啊!B中:4出,栈里顺序应为123,5进后出3出,栈里顺序为12再出的话应该为21,6是最后

C:Φ3出,栈里124进出,5进6进出,5出2出1出

这道题你会答吗?花几分钟告诉大家答案吧!

栈作为一种数据结构是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据先进入的数据被压入栈底,最后的数据在栈顶

元素进栈嘚次序为abc,可分为以下情况:

  1. a进栈a出栈,b进栈b出栈,c进栈,c出栈得到输出序列:abc

  2. a进栈,a出栈b进栈,c进栈,c出栈b出栈。得到输出序列:acb

  3. a进栈b进栈,b出栈a出栈,c进栈,c出栈得到输出序列:bac

  4. a进栈,b进栈b出栈,c进栈,c出栈a出栈。得到输出序列:bca

  5. a进栈b进栈,c进栈,c出栈b絀栈,a出栈得到输出序列:cba

你对这个回答的评价是?

我要回帖

更多关于 若进栈序列为1 2 3 4 的文章

 

随机推荐