一道简单的数据结构考试题,学的东西基本都还老师了。。。。那位能不吝赐教,先谢谢了~~

证明:如果一颗二叉树的后序序列为U1,U2.....Un,中序序列为Up1,Up2,....Upn,
则由序列1,2....n可通过一个栈得到序列p1,p2....pn

(1)确定根节点:由后续可知,Un是根节点;在中序中找到Un,可知Un之前的为左子树,之后的为右子树;
(2)分段:用Un将中序序列Up1,Up2,....Upn划分为【左子树中序序列、Un、右子树中续序列】;用得到的左子树序列和右子树序列将后序序列U1,U2.....Un划分为【左子树后续序列、Un、右子树后续序列】
(3)递归划分出新的根节点:用(1)(2)的方法划分左子树(左子树中序序列、左子树后续序列)和右子树(右子树中续序列、右子树后续序列)得到的根节点作为Un的左孩子和右孩子,直到任何一个子树的节点被划分完毕为止

--E
--C
--K
--D
--J
A
--I
--G
--H
--B
--F
print_pre_order : A B F G H I C D J K E
print_in_order : F B H G I A J D K C E
print_post_order : F H I G B J K D E C A

从上面的证明过程可以看出:
(1)知道先序序列和中序序列也可以确定一个树的结构
(2)知道先序序列和后续序列不可以确定一颗树的结构,因为只能确定根,不能确定左右子树。这里列举一个反例:
A
--B
--F
print_pre_order : A B F
print_post_order : F B A
print_in_order : F B A
--F
--B
A
print_pre_order : A B F
print_post_order : F B A
print_in_order : A B F
这个例子中两颗树具有不同的结构,但他们的先序和后续序列却是相同的追问

问题是证明可以用栈由后序输入得中序输出吧(我是这么理解的),不是证明怎么由后序和中序得出一颗树(这个我知道。。。)

追答

扯淡吧你?一个序列依赖神容器也得不到另一个序列,不要一拍脑袋就问好不好

追问

我能告诉你这是一道考试题么。。。。

温馨提示:内容为网友见解,仅供参考
无其他回答

一道简单的数据结构考试题,学的东西基本都还老师了。。。那位能不吝赐 ...
这个例子中两颗树具有不同的结构,但他们的先序和后续序列却是相同的

.NET走技术路线,相关问题特此请教,望不吝赐教,谢谢
首先你决定走技术路线,以后做分析员,做架构师,做技术总监,做CTO 这就是职业规划。那么至于需要怎么学习呢,一句话,你的主要精力应该向下学习,而不应该向上学习,为什么要向下,向下是了解编程原理,存储,网络结构,数据结构,线程,进程,事件,消息等等。当你都了解底层的东西之后,C#的wpf mvc wcf...

...最好能有具体的实际应用的例子。刚学数据结构
三个相关联的要素合为1体,总体来操控,这就是三元组 数据结构中最著名的有用行下标、列下标和元素值三者合起来表示稀疏矩阵的某个非零元素 还有抽象数据类型,包括数据元素、数据元素的关系和数据元素的操作这三元

大一计算机专业,接下来怎么学,学什么?
1.office系列的书籍,对以后很有帮助。2.其次留有一定的时间准备全国英语四级考试,争取一次性通过。3.期末考试成绩争取拿高分,对奖学金的评定有影响。大一计算机专业学习的方法:1.对课上认真听讲,课下应该找些计算机入门的书籍学习。2.课下学习一门简单的编程语言。3.课余时间多去图书馆看看课外书。

单片机工作总结
10. 如果有可能,多学习一下计算机专业的课程,例如数据结构,毕竟单片机与程序的设计也是不能分开的,这是一个综合的科目。 11. 面对一个新的项目,要先自己想下怎么做,而不是单单地找别人的代码,这是很重要的,因为只有这样做,自己才能独立去思考一个新的东西,也更有可能创造出一个更好的程序。 有时候单片机的...

...大哥能给我一些学习方面的建议!望不吝赐教!谢谢!262875821
游戏开发分:策划,美工师,建模师,场景,音乐师,美容师,程序开发工程师等等。其中的每一类都很复杂,建议你选一个具体的方向去学习,先精通一门然后再去综合学习其他。个人开发小型游戏就要用到(PS,MAX)这两个可以对对像美工建模,还要会一些音效调节软件,之后就是要学习演戏控制语言如C\/C++,...

相似回答
大家正在搜