如何根据前序、中序、后序遍历还原二叉树

如何根据前序、中序后序遍历还原⼆叉树
⾸先我们得知道概念:
前序遍历:先访问当前节点,再访问当前节点的左⼦树,最后访问当前节点的右⼦树。对于⼆叉树,深度遍历与此同。规律:根在前;⼦树在根后且左⼦树⽐右⼦树靠前,且第⼀个就是根节点;
中序遍历:先访问当前节点的左⼦树,然后访问当前节点,最后是当前节点的右⼦树,⼆叉树,中序遍历会得到数据升序效果。规律:根在中;左⼦树在跟左边,右⼦树在根右边,左边部分是根结点的左⼦树的中序遍历序列,右边部分是根结点的右⼦树的中序遍历序列 ;
后序遍历:先访问当前节点的左⼦树,然后是当前节点的⼜⼦树,最后是当前节点。规律:根在后;⼦树在根前且左⼦树⽐右⼦树靠前,且最后⼀个节点是根节点。
⼀、前序+中序
1. 根据前序序列的第⼀个元素建⽴根结点;
2. 在中序序列中到该元素,确定根结点的左右⼦树的中序序列;
3. 在前序序列中确定左右⼦树的前序序列;
4. 由左⼦树的前序序列和中序序列建⽴左⼦树;
5. 由右⼦树的前序序列和中序序列建⽴右⼦树。
如:已知⼀棵⼆叉树的先序遍历序列和中序遍历序列分别是abdgcefh、dgbaechf,求⼆叉树及后序遍历序列。
先序:abdgcefh—>a bdg cefh
中序:dgbaechf—->dgb a echf
得出结论:a是树根,a有左⼦树和右⼦树,左⼦树有bdg结点,右⼦树有cefh结点。
先序:bdg—>b dg
中序:dgb —>dg b
得出结论:b是左⼦树的根结点,b⽆右⼦树,有左⼦树。
先序:dg—->d g
中序:dg—–>dg
t5荧光灯
得出结论:d是b左⼦树的根节点,d⽆左⼦树,g是d的右⼦树
然后对于a 的右⼦树类似可以推出
最后还原: a
b                                                c
d                                                      e                                f一汽马自达车主俱乐部
g                                                                      h
后序遍历:gdbehfca
新安江第二小学⼆、后序+中序:
已知⼀棵⼆叉树的后序序列和中序序列,构造该⼆叉树的过程如下:
社会科学辑刊1. 根据后序序列的最后⼀个元素建⽴根结点;
2. 在中序序列中到该元素,确定根结点的左右⼦树的中序序列;
3. 在后序序列中确定左右⼦树的后序序列;
4. 由左⼦树的后序序列和中序序列建⽴左⼦树;
5. 由右⼦树的后序序列和中序序列建⽴右⼦树
如还是上⾯题⽬:如:已知⼀棵⼆叉树的后序遍历序列和中序遍历序列分别是gdbehfca、dgbaechf,求⼆叉树
金山网镖6
后序:gdbehfca—->gdb ehfc a
中序:dgbaechf—–>dgb a echf
得出结论:a是树根,a有左⼦树和右⼦树,左⼦树有bdg结点,右⼦树有cefh结点。
后序:gdb—->gd b
中序:dgb—–>dg b并行计算机
得出结论:b是a左⼦树的根节点,⽆右⼦树,有左⼦树dg。
后序:gd—->g d
中序:dg—–>d g
得出结论:d是b的左⼦树根节点,g是d的右⼦树。
然后对于a 的右⼦树类似可以推出。然后还原。
三、前序+后序
前序和后序在本质上都是将⽗节点与⼦结点进⾏分离,但并没有指明左⼦树和右⼦树的能⼒,因此得到这两个序列只能明确⽗⼦关系,⽽不能确定⼀个⼆叉树。 故此法⽆。不能唯⼀确定⼀个⼆叉树。

本文发布于:2024-09-22 12:45:54,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/611897.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:产品介绍表
标签:序列   中序   遍历   后序   叉树
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议