首页 > 其他分享 >根据遍历序列确定二叉树

根据遍历序列确定二叉树

时间:2022-11-07 12:14:51浏览次数:61  
标签:结点 遍历 中序 二叉树 序列 先序

二叉树的还原

由二叉树的先序序列和中序序列,或由其后序序列和中序序列均能唯一地确定一棵二叉树。

根据定义,二叉树的先序遍历是先访问根结点,其次再按先序遍历方式遍历根结点的左子树,最后按先序遍历方式遍历根结点的右子树。这就是说,在先序序列中,第一个结点一定是二叉树的根结点。另一方面,中序遍历是先遍历左子树,然后访问根结点,最后再遍历右子树。这样,根结点在中序序列中必然将中序序列分割成两个子序列,前一个子序列是根结点的左子树的中序序列,而后一个子序列是根结点的右子树的中序序列。根据这两个子序列,在先序序列中找到对应的左子序列和右子序列。在先序序列中,左子序列的第一个结点是左子树的根结点,右子序列的第一个结点是右子树的根结点。这样,就确定了二叉树的三个结点。同时,左子树和右子树的根结点又可以分别把左子序列和右子序列划分成两个子序列,如此递归下去,当取尽先序序列中的结点时,便可以得到一棵二叉树。

同理,由二叉树的后序序列和中序序列也可唯一地确定一棵二叉树。

因为,依据后序遍历和中序遍历的定义,后序序列的最后一个结点,就如同先序序列的第一个结点一样,可将中序序列分成两个子序列,分别为这个结点左子树的中序序列和右子树的中序序列,再拿出后序序列的倒数第二个结点,并继续分割中序序列,如此递归下去,当倒着取尽后序序列中的结点时,便可以得到一棵二叉树。

但是,由一棵二叉树的先序序列和后序序列不能唯一确定一棵二叉树,因为无法确定左右子树两部分。

所以我们可以总结出以下几点:
(1)由先序遍历(NLR)特征,在先序序列中,第一个结点一定是二叉树的根结点。
(2)由后序遍历(LNR)特征,根结点必在后序序列尾部。
(3)由中序遍历(LRN)特征,根结点必在其中间,而且其左部必全部是左子树子孙,其右部必全部是右子树子孙。

标签:结点,遍历,中序,二叉树,序列,先序
From: https://www.cnblogs.com/haibersut/p/16865481.html

相关文章

  • .NET性能优化-是时候换个序列化协议了
    计算机单机性能一直受到摩尔定律的约束,随着移动互联网的兴趣,单机性能不足的瓶颈越来越明显,制约着整个行业的发展。不过我们虽然不能无止境的纵向扩容系统,但是我们可以分布......
  • 二叉树、平衡二叉树、红黑树、B树、B+树
    二叉树基于二叉查找树的这种特点,在查找某个节点的时候,可以采取类似于二分查找的思想,快速找到某个节点。n个节点的二叉查找树,正常的情况下,查找的时间复杂度为O(logN)。......
  • 拓端tecdat|R语言代写卡尔曼滤波器: KFAS建模时间序列
    时间序列预测,ARIMA等传统模型通常是一种流行的选择。虽然这些模型可以证明具有高度的准确性,但它们有一个主要缺点-它们通常不会解释“冲击”或时间序列的突然变化。让我们......
  • HashMap 的 7 种遍历方式与性能分析!
    参考来自于:HashMap的7种遍历方式与性能分析!方法之1:使用forEachpublicclassHashMapTest{publicstaticvoidmain(String[]args){//创建并赋值......
  • 第2期 分布迁移下的深度学习时间序列异常检测方法探究 2021-09-22
    2021-09-22      Gartner曲线:https://baijiahao.baidu.com/s?id=1741660322658337733&wfr=spider&for=pc      source domainA中是......
  • 根据前序遍历和中序遍历构造二叉树
    对于一个二叉树,如果我们我们知道他的前序遍历和中序遍历,那就可以直接构造还原出完整的二叉树。举例:现在有一个二叉树,前序遍历是ABDECFG,中序遍历是DBEACGF。如何确定这个树......
  • 297. 二叉树的序列化与反序列化
    序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得......
  • java 使用序列化写出或者读取对象
    进行写出前,建议在pojo类中,定义属性“serialVersionUID“,否则对象以后要更改或添加属性时,再读取原来的文件会报错例如下面实体类publicclassRenimplementsSerializa......
  • 不知道为什么递归失败 二叉树 演我?
    不知道为什么不能够递归搞明白了再更啊哈哈哈怎么突然就行了准备截一张失败的图来着然后突然就出来了也不知道之前为什么失败  非递归的今天晚上应该写不出来了......
  • FastStone Capture 注册码 序列号
    FastStoneCapture注册码序列号:name/用户名:TEAMJiOOkey/注册码:CPCWXRVCZW30HMKE8KQQUXWUSERNAME:TEAM_BRAiGHTLiNG_2007CODE:XPNMF-ISDYF-LCSED-B......