前序遍历、中序遍历和后续遍历

前序遍历、中序遍历和后续遍历树的遍历顺序大体分为三种 前序遍历 先根遍历 先序遍历 中序遍历 中根遍历 后序遍历 后根遍历 nbsp 如图所示二叉树 nbsp 前序遍历 前序遍历可以记为根左右 若二叉树为空 则结束返回 前序遍历的规则 1 访问根节点 2 前序遍历左子树 3 前序遍历右子树这里需要注意 在完成第 2 3 步的时候 也是要按照前序遍历二叉树的规则完成 前序遍历的输出结果 AB

树的遍历顺序大体分为三种:前序遍历(先根遍历、先序遍历),中序遍历(中根遍历),后序遍历(后根遍历)。

 

如图所示二叉树:

前序遍历、中序遍历和后续遍历

 

前序遍历:

前序遍历可以记为根左右,若二叉树为空,则结束返回。

前序遍历的规则:

(1)访问根节点

(2)前序遍历左子树

(3)前序遍历右子树

这里需要注意:在完成第2,3步的时候,也是要按照前序遍历二叉树的规则完成。

前序遍历的输出结果:ABDECF

中序遍历:

中序遍历可以记为左根右,也就是说在二叉树的遍历过程中,首先要遍历二叉树的左子树,接着遍历根节点,最后遍历右子树。

同样,在二叉树为空的时候,结束返回。

中序遍历的规则:

(1)中序遍历左子树

(2)访问根节点

(3)中序遍历右子树

注意:在完成第1,3步的时候,要按照中序遍历的规则来完成。

中序遍历的输出结果:DBEAFC

后序遍历:

后序遍历可以记为左右根,也就是说在二叉树的遍历过程中,首先按照后序遍历的规则遍历左子树,接着按照后序遍历的规则遍历右子树,最后访问根节点。

在二叉树为空的时候,结束返回。

后序遍历二叉树的规则:

(1)后序遍历左子树

(2)后序遍历右子树

(3)访问根节点

注意:在完成1,2步的时候,依然要按照后序遍历的规则来完成。

后序遍历的输出顺序:DEBFCA

————————————————————————————————————————————————————————————

例题:

已知前序、中序遍历,求后序遍历

前序遍历:  DBAECHMZ

中序遍历:ABCEDMHZ

先根据前序遍历得到根结点为D。根据中序遍历就可以知道ABCE为左子树,MHZ为右子树。

再根据前序遍历,D之后就是BAEC为左子树,所以B是离根节点最近的一个左子树的根结点,B为ADCE左子树的根结点,

再根据前序遍历,D之后的HMZ为右子树,      所以H是离根结点最近的一个右子树的根结点,H为HMZ右子树的根结点,

 所以:                        D

                                    ∧

                                  B   H

接下来截断为:

前序:BAEC

中序:ABCE

再根据前序遍历,左子树根结点为B,根据中序遍历就可以知道A为左子树,CE为右子树

再根据前序遍历,B之后就是A为左子树,没啥好分析了

再根据前序遍历,B之后就是EC为右子树,所以E是离根结点最近的一个右子树的根结点,E为EC右子树的根结点

所以:                    B

                              ∧

                             A  E

同理,再分析右子树,最后可得二叉树的结构为:   D

                                                                                  ∧

                                                                                B   H

                                                                              ∧     ∧

                                                                           A   E  M  Z

                                                                               /

                                                                               C

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/218166.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午7:53
下一篇 2026年3月18日 上午7:54


相关推荐

  • shell内部命令_rshell

    shell内部命令_rshellShell内值命令之readread读取控制台输入目标: 理解read命令的作用 使用read给多个变量赋值 使用read读取一个字符 使用read限制时间输入 介绍: read是shell内置命令,用于从标准输入中读取数据并赋值给变量,如果没有进行重定向,默认就是从终端控制台读取用户输入的数据,如果进行了重定向,那么可以从文件中读取数据. 语法:read[options][var1var2]options表示选项,如下所示,var表示用来存储数据的变量,可以是一个,也可以是多

    2022年8月31日
    6
  • java字符串数组初始化和赋值[通俗易懂]

    java字符串数组初始化和赋值[通俗易懂]//一维数组String[]str=newString[5];//创建一个长度为5的String(字符串)型的一维数组String[]str=newString[]{“”,””,””,””,””};String[]str={“”,””,””,””,””};String数组初始化区别      首先应该明白java数组里面存的是对象的引用,所以必须初

    2022年7月18日
    24
  • GridView中实现双向排序

    GridView中实现双向排序1 aspx 前台代码

    2026年3月18日
    2
  • phpstorm 激活服务器[最新免费获取]

    (phpstorm 激活服务器)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月30日
    166
  • 此工作站和主域间的信任关系失败 又一解决办法_域与主机失去信任关系

    此工作站和主域间的信任关系失败 又一解决办法_域与主机失去信任关系在服务器的日志上,这个错误应该大家都不陌生了,错误的特征,我给大致描述一下:在域中总是会有计算机由于某种原因,导致计算机账户的密码无法和lsasecret同步系统会在计算机登陆到域的时候,提示已经丢失域的信任关系。日志大致如下:EventID:5SourceNETLOGONTypeErrorDescriptionThesessionsetupfromthecomputer…

    2022年10月19日
    4
  • MySQL的安装和配置(超详细图文教程)「建议收藏」

    MySQL的安装和配置(超详细图文教程)「建议收藏」数据库的安装1.打开下载的mysql安装文件双击解压缩,运行“mysql-5.5.40-win32.msi”。2.选择安装类型,有“Typical(默认)”、“Complete(完全)”、“Custom(用户自定义)”三个选项,选择“Custom”,按“next”键继续。3.点选“Browse”,手动指定安装目录。4.填上安装目录,我的是“d:\ProgramFiles(x86)…

    2022年4月20日
    53

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号