搜索
首页 电脑/网络 程序设计

大学数据结构中栈的问题

最近刚接触数据结构栈的知识,教材上有这样一道题:若按从左到右的顺序依次读入已知序列(a,b,c,d,e,f,g)中的元素,然后结合堆栈操作,能得到下列序列中的哪些序列(每个元素进栈一次,下列序列表示出栈次序)1.(d,e,c,f,b,g,a) 2.(f,e,g,d,a,c,b) 3.(e,f,d,g,b,c,a) 4(c,d,b,e,f,a,g)我觉得能得到1和4,可答案是1和2,不知道到底对不对,希望能给予解答,谢谢!

全部回答

2006-11-16

0 0
    2是不正确的 解释:按照2出栈顺序,a,b,c,d,e,f依次先进栈,然后f出栈; 这时栈中是a,b,c,d,e,接着e出栈,这时栈中是a,b,c,d; 接下来必须是g出栈,则必须先使之进栈,即:g进栈,然后g出栈; 这时栈中是a,b,c,d;然后是d出栈,栈中剩下a,b,c; 所有的元素都进过栈了,现在只能是安顺序c,b,a出栈。
     这样就与顺序2不符。 4是正确的。说明[]中是栈的内容,()中是出栈的顺序 解释:a,b,c依次进栈[a,b,c],c出栈[a,b];-->(c,。。
  。) d进栈[a,b,d],d出栈[a,b];-->(c,d,。。。) b出栈[a];-->(c,d,b,。  。。) e进栈[a,e],e出栈[a]; -->(c,d,b,e,。
  。。) f进栈[a,f],f出栈[a];-->(c,d,b,e,f,。。。) a出栈[]->(c,d,b,e,f,a,。。。) g进栈[g],g出栈[]。-->(c,d,b,e,f,a,g),ok! 。
    。

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
程序设计
硬件
电脑装机
互联网
操作系统/系统故障
笔记本电脑
反病毒
百度
软件
程序设计
程序设计
VB
数据库
C/C++
汇编语言
JAVA相关
VC++
C#/.NET
其他编程语言
举报
举报原因(必选):
取消确定举报