二叉树前序,中序求后续;中序,后续求前序
一,
1,知道前序,中序,求后续
前序:ABCDEFGHI
中序:BCAEDGHFI
由图可知后序为:CBIHGFEDA
2.知道中序,后续求前序
中序:BDCEAFHG
后序:DECBHGFA
由后续知道根节点为A,由中序知道A的左边元素为BDCE,右边元素为FHG;由后序知道A的左子树元素为B,由中序知道B的右子树为C;由后序知道C的左子树为D,由中序知道C的右子树为E;
由后序知A的右子树为F,由中序知F无左子树,由后序知F的右子树为G,再由中序知G的左子树为H
综上可得:前序为ABDCEFGH
二,二叉树的便利
1.前序遍历
先访问根节点,再访问左子树,最后放问右子树
void preOrder(Tree *pBoot)
{
if(NULL == pBoot)
{
return ;
}
printf(“%c”,pBoot->data);//先访问根节点
preOrder(pBoot->lChild);//再访问左子树
preOrder(pBoot->rChild);//再访问右子树
}
2.中序遍历
先访问左子树,再访问根节点,最后访问右子树
void midOrder(Tree *pBoot)
{
if(NULL == pBoot)
{
return ;
}
midOrder(pBoot->lChild);//先访问左子树
printf(“%c”,pBoot->data);再访问根结点
midOrder(pBoot->rChild);//最后访问右子树
}
3.后续遍历
先访问左子树,再访问右子树,最后访问根节点
void postOrder(Tree *pBoot)
{
if(NULL == pBoot)
{
return ;
}
postOrder(pBoot->lChild);//先访问左节点
postOrder(pBoot->rChild);//再访问右节点
printf(“%c”,pBoot->data);//最后访问根节点
}
二叉树前序,中序求后续;中序,后续求前序相关推荐
- 已知二叉树的前序遍历、中序遍历或者中序遍历、后序遍历求二叉树结构的算法
二叉树中的前序遍历是先访问根结点,再访问左子树,右子树. 中序遍历是先访问左子树,再是根结点,最后是右子树. 后序遍历是先访问左子树,再是右子树,最后是根结点. 算法思路是先根据前序遍历的第一个结点或 ...
- 二叉树知道前序和中序求后序,知道中序后序求中序
今天来总结下二叉树前序.中序.后序遍历相互求法,即如果知道两个的遍历,如何求第三种遍历方法,比较笨的方法是画出来二叉树,然后根据各种遍历不同的特性来求,也可以编程求出,下面我们分别说明. 首先,我们看 ...
- pat根据中序遍历和先序遍历_算法题399:从前序与中序遍历序列构造二叉树
(给算法爱好者加星标,修炼编程内功) 来源: 数据结构和算法-山大王wld 问题描述 今天我们就不做关于双指针的了,我们爬到树上玩会儿,做一道关于二叉树的题.今天的题就一句话,根据一棵树的前序遍历与中 ...
- (2)二叉树由后序(LRD)和中序(LDR)得到前序(DLR)
二叉树由后序(LRD)和中序(LDR)得到前序(DLR) 具体代码 /* DCBHKGFEA 后序 BDCAEHGkF 中序 ABCDEFGHK 前序思路:根据后序找根节点->分割中序-> ...
- 二叉树的构造(前序+中序)---(后序 + 中序)
二叉树的构造(前序+中序)-(后序 + 中序) 思路:要对前序+中序(后序+中序)的构建树的动态过程要了解,思路比较简单,在了解了这个过程之后,理解下面代码就容易了. 过程 参考图: 前序 + 中序: ...
- 二叉树的前序遍历,中序遍历,后序遍历
这三也是经典的二叉树的三种方法 二叉树的前序遍历 递归实现 public class Main4 {static ArrayList<TreeNode> list = new ArrayL ...
- 二叉树的前序遍历,中序遍历,后序遍历-详解-配套例题
二叉树作为数据结构中一种简单而且重要的数据结构,他的存储结构和算法都相对比较简单,因此他也显得特别重要,因为很多问题都可以抽象为二叉树的问题. 在这里我们对于二叉树的基本概念不做详细介绍,我们这里主要 ...
- 分别从中序、后续中组成二叉树(likou106)
likou106本题会给你两个数组,arr1由中序遍历,arr2用后续遍历,返回一个原始二叉树. 首先我们要理解好三种遍历方式的顺序: (25条消息) 二叉树的理论知识_小肖在路上的博客-CSDN博客 ...
- 用Java实现二叉树前序遍历、中序遍历和后序遍历。
用Java实现二叉树前序遍历.中序遍历和后序遍历. 解析: public class Tree {private int data; /* 数据节点 */private Tree left; /* 左 ...
- 数据结构之二叉树的前序遍历、中序遍历、后序遍历、层序遍历
一.二叉树的遍历概念 二叉树的遍历是指从根结点触发,按照某种次序依次访问二叉树中所有结点,使得每个结点被访问一次且仅被访问一次. (1). 前(先)序遍历 前序遍历:若二叉树为空,则空操作返回,否则先 ...
最新文章
- win10 mbr下装linux,在Win10下安装Ubuntu 18.04双系统(MBR+Legacy)
- 2009 年 3月 二级 java
- c语言 字符串数组末尾,C语言中,利用宏定义一个字符串和字符数组定义的字符串其末尾都会自动添加\0字符...
- 简单点亮发光二极管实例(位操作)
- oracle中导入导出数据备份数据库
- 格林威治时间(Tue Jan 01 00:00:00 CST 2019)[ Date ]转化 为 [ 2019-01-01 10:10:10 ]
- Android SharedPreferences的理解与使用
- 如何通过MongoDB自带的Explain功能提高检索性能?
- [轉].NET项目是否有必要升级到.NET 3.5 + VS 2008
- 693. Binary Number with Alternating Bits -LeetCode
- 毕设题目:Matlab手写或印刷数字字母识别
- c语言调试的意义,C语言的调试
- vscode中查看二进制文件
- 使用端口扫描工具消除端口安全威胁
- springboot幼儿园幼儿基本信息管理系统毕业设计源码201126
- 关于模电与数电的基础知识
- KB和kB,MB和mb,详细解释计算机存储单位
- NCE4 L6 The sporting spirit
- nodemon运行 提示错误:无法加载文件 C:\Users\gxf\AppData\Roaming\npm\nodemon.ps1。
- 灵魂站队:结婚,男的压力大,还是女的压力大?