关于编程的遍历问题

发布网友

我来回答

2个回答

热心网友

先序是先根后左右子树,所以序列的第一个是根;后序是先左右子树后根,所以序列的最后一个是根;中序是左子树、根、右子树;其实关键就是抓住这个定义,利用已知的两个序列将根的位置确定,然后区分左右子树的位置,然后递归的去做。
先序和后序序列不能唯一确定中序,但是先序中序可以唯一确定后序序列,中序后序可以唯一确定前序。后两种组合较简单,就不说了。先序后序组合容易确定的是根, 以这个题目为例:容易判断1是根,然后区分左右两棵子树。一个可以利用的特性是左右子树在序列中视不会交叉的,所以可以判断先序中的24是左子树,3576是右子树;后序中的42是左子树,7563是右子树;然后再对子树递归的分析即可。

热心网友

先观察四个选项根节点1都在第三位,中序遍历是先做子树,可判断出2,4为T的左子树,3576为右子树。则二叉树为

1
2 3
4 4 5 6
7 7
由于4和7有两个位置都符合题意。所以根据中序遍历的定义得到答案

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com