主题:初学<数据结构>,堆栈题不懂??????
lsylsy
[专家分:400] 发布于 2006-09-18 10:18:00
选择题:
一个栈的入栈序列是a,b,c,d,e; 则栈的不可能的输出序列是( ).
a,edcba b.decba c.dceab d.abcde
书上答案是c
但是我不懂出栈序列b,d为什么也是正确的啊?????
谁能帮解释下,小弟万分感谢!!
回复列表 (共18个回复)
11 楼
start4u [专家分:70] 发布于 2006-10-17 18:58:00
入栈不一定一次性入 可以按顺序先入一部分 所以正确答案应该是C
12 楼
nxwfy [专家分:170] 发布于 2006-10-19 08:52:00
c 中a在b下面要等到b先出a才能出
13 楼
leonlikai [专家分:0] 发布于 2006-10-29 10:06:00
遵循先进后出原则,真要不行拿着实物比划一下就明白了
14 楼
yqin [专家分:150] 发布于 2006-11-26 17:15:00
这样的题目还是比较好做的,好好想想。
15 楼
avenger07 [专家分:160] 发布于 2006-11-29 01:08:00
B:decba
其操作是这样:1、cba已经进栈;
2、d进栈、再立即出栈----〉所以d就是第一个出栈的;
3、此时栈里面的还是只有cba;e入栈,再立即出--〉所以e是第二个
出栈的,此时栈里面依然只有cba;
4、c、b、a在分别出栈。
16 楼
panheshun [专家分:120] 发布于 2006-11-29 20:34:00
好简单的题目,终于懂了。。。
17 楼
lanpin [专家分:0] 发布于 2006-12-05 16:15:00
堆栈是先进后出哟,有abcdef序列
可以先让a进,然后又让a出,再进b哟,别的都是一样的道理,如果第一个出的是d,那表示一次性把abcd都进了
18 楼
hqin6 [专家分:140] 发布于 2006-12-07 02:29:00
你没明白题意,题里不是要求全部都入栈,可以只有部分入栈。
a:全入,然后逐个弹出
b:abc入栈,d直接输出,e可入可不入,不入就直接输出,然后把堆栈里的数弹出来,入栈的话一样
c:要保证d首先输出,那么abc全都要入栈,这样,它出栈的顺序应该是cba,而题里是cab,所以错了
d:全都不入栈,直接输出
我来回复