前序 中序 后序 遍历的求解

本文介绍了如何通过已知的二叉树前序和中序遍历结果推导出后序遍历结果的方法,并详细解释了如何从这些遍历序列中恢复原始二叉树结构的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前中===>后

例如:在一棵二叉树总,前序遍历结果为:ABDGCEFH,中序遍历结果为:DGBAECHF,求后序遍历结果。

我们知道:

前序遍历方式为:根节点->左子树->右子树

中序遍历方式为:左子树->根节点->右子树

后序遍历方式为:左子树->右子树->根节点

从这里可以看出,前序遍历的第一个值就是根节点,然后再中序遍历中找到这个值,那么这个值的左边部分即为当前二叉树的左子树部分前序遍历结果,这个值的右边部分即为当前二叉树的右子树部分前序遍历结果。因此,通过这个分析,可以恢复这棵二叉树
就该题为例,从前序遍历可以发现A为根节点,从中序遍历可以发现  DGB为左子树 ECHF为右子树
下面开始画左子树   这一步的关键是,不要把左子树当一个枝看待,要当成一棵新树看待

那么这棵新树 的前序遍历也就是  整棵树前序遍历的包含所有左子树的部分BDG
                                    中序遍历也就是整棵树中序遍历的包含左子树的部分 DGB
那么可以把上面的结果当成一个新树采用第一步同样方法处理,就可以一步一步得到结果,当然右侧部分也跟左侧一模一样方式处理

后 中===>前

          这种方式其实和前中退出后序是一样的从后序入手找根节点,从中序找子树。拆解完后的新树,还是按照第一步从后序找跟,中序找子树。

前后====>中

         这个相对要难一点,从前后都能一眼看到根节点,前序中紧邻根节点的是左子树的跟,那么后序中这个字母前(包括该字母)都是左子树,剩下的去掉根后都是右子树。得到子树之后,后面的都是采用递归,将新的子树当树,采用第一步同样的方法来处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值