数据结构--二叉树遍历(详细过程)

article/2025/9/22 6:17:50

目录

一、什么是二叉树?

二、二叉树的遍历

1. 先序遍历

2. 中序遍历

 3.后序遍历

4. 遍历的推导

三、重要的事情

一、什么是二叉树?

1. 二叉树:一种树形结构,特点是每个结点至多只有两颗子树,并且子树有左右之分,次序不能颠倒。

特殊形态的二叉树:满二叉树和完全二叉树;

2. 满二叉树:最后一层都是叶子结点,每个结点都是满的(每结点都有两颗子树)。

3. 完全二叉树:有n个结点,且符合满二叉树的编号次序。

二、二叉树的遍历

  • 先序遍历 DLR (依次遍历:结点,子树,子树)
  • 中序遍历 LDR (依次遍历:子树,结点,子树)
  • 后序遍历 LRD (依次遍历:子树,子树,结点)

看不懂?不急,直接上图。(二叉树就像递归一样,一层一层的。)

1. 先序遍历

从根结点开始围着跑,依次写出即可(这是简单的方法,也是最快的,但还是要看一下下面的详细解释哦)

图中序列为:A B D H E C F I G

详细解释(我称它为"三分法"):先序遍历是先根,再左,后右,像递归一样一层一层拨开,(此处的根结点是每一个结点皆可是根,而不是最顶上的根结点),如下图;分好根左右后,按我们上面的定义(依次遍历:结点,子树,子树)

根是A(写下来),再拨左子树,此时左子树可分成图二;根是B(写下来),再拨左子树,又拨成图三的样子;根是D(写下来),拨不下去了,回到根是D的情况,在图三中,H成为了左子树(写下来),发现没有右子树,那就不写了;回到根是B的情况,在图二中,根结点和左子树已经被我们写好了,到右子树了,右子树是E(写下来);如此如此,这般这般,再按此方法把图一中的右子树划分成图四,图五的样子,剩下的交给你了。写出来为:A B D H E C F I G

2. 中序遍历

 图中序列为:H D B E A I F C G

404???!!!

 嘻嘻,这次没有快捷办法了!但按我上图的"三分法"敲好用。(熟练后心中直接出图,不用像我一样框出来)

解释:不要忘了定义:中序遍历 LDR (依次遍历:子树--->结点--->子树)

图一中根是A,但我们要先写左子树,开始拨图二,发现还有,继续拨它;图三中,左子树是H(写下来),根是D(写下来),右子树,没有就不写;回到图二,根是B(写下来)因为左子树已经被我们写好了,右子树是E(写下来);回到图一,根是A(写下来),开始写右子树,然后就是图四,图五了;交给你了,别忘了定义!定义!定义!写出来为:H D B E A I F C G

 3.后序遍历

 图中序列为:H D E B I F G C A

目前还是没有发现又快又保证能对的方法,但"三分法"依旧很强,熟练后就又快又准了。

解释:后序遍历 LRD (依次遍历:子树,子树,结点)

先左子树,我们一眼拨到图三,左子树H(写下来),没有右子树,那就到根D(写下来)了;图二中,右子树是E(写下来),根是B(写下来);拨到图五,左子树是I(写下来),F(写下来)是根;图四,右子树是G(写下来),根是C(写下来),最后A是图一的根;写出来为:H D E B I F G C A

4. 遍历的推导

如下面的题。PS:如果只给 前序遍历序列后序遍历序列 是不能确定唯一二叉树的(判断题)。

 简单的方法:后序遍历最后一个序列结点一定是最顶上的根结点,先序遍历第一个序列结点一定是根结点。所以此题只能含泪选D再拿3分了。

开玩笑,要是换个干扰项怎么办呢?还是要有真功夫的!

解释:后序可判断C为根结点,这样从(1)可推出左子树,大家可还记得上面图四和图二的后序遍历吗?看看他们各自的根结点与总结点A有上面关系?你试着画一个没有右子树的,看看它的后序遍历是什么。这样由后序(2)可推E为根,由中序可推左右子树,(5)再推根,又可中序推出左右子树,这样图5.2就画出来了。中序判左右,后序判根结点。再看下一题巩固下。

别急着看结果,自己画一下

  

此题为:D 

详细解释:由先序遍历推出根结点为A,由(1)可推左子树为DGB,右子树为ECHF;由(2)可确定左子树的根为B;根为B,由(3)可推知DG为左子树,再由(4)知D为根,由(5)可推G为右子树;这样就可以画出左边的图了(例图三)。ECHF交给你们了,请用好我的“三分法”哦!结果为(例图四);由先序推根,中序推左右子树。

                                                                        自己画一下

三、重要的事情 

根左右,左根右,左右根 三者相互限制可判断出相应位置。

感觉不错的话,就请点赞支持一下吧!纯手工打造哦!谢谢!!!


http://chatgpt.dhexx.cn/article/oWytJWkJ.shtml

相关文章

图解法:三分钟掌握二叉树的三种遍历

二叉树作为树中的一种特殊存在机制,人们对于它的排序总结出来了三种方式,让我们一起探寻它的魅力吧! 测试对象 1.先序遍历 首先看一下排序规则 先访问根节点 再先序访问左子树 再先序访问右子树 看上面的素材,得知根节点为…

二叉树的各种遍历算法以及实例

一、二叉树 在计算机科学中,树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构。二叉树是每个节点最多有两个子树的有序树。通常子树被称作“左子树”(left s…

二叉树的四种遍历方法(前序遍历、中序遍历、后序遍历、层序遍历)有图有真相!!!

文章目录 二叉树的四种遍历方式前序遍历(Preorder Traversal)中序遍历(Inorder Traversal)后序遍历(Postorder Traversal)层序遍历(Level Order Traversal) 二叉树的四种遍历方式 相…

二叉树的层次遍历算法

前面学的二叉树的遍历是把二叉树看作3个部分:根,左子树,右子树,然后我们以此来访问3个部分 而层次遍历是把树看成从上到下的若干层:根结点在第一层,根结点的孩子在第二层,根结点的孩子的孩子在第…

二叉树各种遍历算法

二叉树是许多算法题的常用结构,其遍历算法的各种变种就是各种题目。具体的顺序如下: 先序遍历:先根、后左、再右中序遍历:先左、后根、再右后序遍历:先左、后右、再根 递归版先序、中序、后序遍历 最简单、最直接的…

带你图解二叉树的多种递归遍历(建议收藏!!)

文章目录 二叉树的构建结点类型的定义构建二叉树之间的关系 深度优先遍历前序遍历代码实现图解递归(由于图片大小问题,建议用手机客户端查看,以下图解也是) 中序遍历代码实现图解递归 后序遍历代码实现图解递归 广度优先遍历层序遍…

二叉树遍历之图解Mirror算法(莫里斯算法)

144. 二叉树的前序遍历 我们写二叉树的遍历时,一般有两种方式,迭代和递归。然而还有一种神奇的算法,也可以作我们的二叉树递归,且空间复杂度为O(1),要知道,我们迭代和递归都是需要额外栈空间的 递归和迭代网…

二叉树遍历方法——前、中、后序遍历(图解)

目录 一、前序遍历 (1)递归版本 (2)非递归版本 二、中序遍历 (1)递归版本 (2)非递归版本 三、后序遍历 (1)递归版本 (2)非递归版…

详细图解二叉树四种遍历(前序中序后序层次遍历)

文章目录 一.前序遍历常规操作简单方法 二.中序遍历常规操作简单方法 三.后序遍历常规操作 四.层次遍历常规操作 本文中以此二叉树为例 一.前序遍历 常规操作 先根,再左,再右 确定了遍历整体结构: 确定了左子树中的整体结构 继续操作&…

FPN细节剖析以及pytorch代码实现

目录 FPN(feature pyramid network) 网络结构 bottleneck pytorch代码实现 公式:卷积层输入输出大小的计算公式 细节一:代码中blocks参数的含义 细节二:c1 c2 c3 c4 c5层尺寸分别为原图的1/2 1/4 1/8 1/16 1/32…

目标检测之FPN、AugFPN、NAS-FPN

针对小目标的检测有提升的文章。 未完待续~ Feature Pyramid Networks for Object Detection FPN是一种多尺度的目标检测算法。大多数目标检测算法都是采用顶层特征来做预测的,但是我们知道:低层的特征语义信息较少,但是位置信息丰富&#x…

FPN网络和RPN网络介绍

原文链接 神经网络特征提取过程中,一般底层特征具有良好的空间信息,高层的具有良好的语义信息。原来多数的object detection算法都是只采用顶层特征做预测,但我们知道低层的特征语义信息比较少,但是目标位置准确;高层…

Neck网络 FPN + PAN 改进解读

呃 这篇文章的目的在于补充一些知识以便于理解Neck部分的网络 特征提取网络 与 目标检测之间的关系 一个特征提取网络,假设有1000层,开始的特征图包含的细节信息就很多,而随着网络的加深,特征提取网络经过多次被卷积和池化操作&…

FPN论文笔记

FPN论文笔记 现在看FPN和Inception并行结构融合有点像,FPN上采样同时横向连接相加,Inception是堆叠几个感受野不同的feature,融合的思想有点相似。 FPN是什么? Feature Pyramid Networks,用于特征抽取(feature extr…

FPN算法一览

FPN应该是2017年CV顶会的优秀论文,基于目标检测做的研究,在小物体检测方面较为具有吸引力。 1.FPN 源论文:feature pyramid networks for object detection 参考代码:FPN 同时利用低层特征高分辨率和高层特征的高语义信息&…

目标检测中的各种FPN

早期的目标检测算法,无论是一步式的,还是两步式的,通常都是在Backbone的最后一个stage(特征图分辨率相同的所有卷积层归类为一个stage)最后一层的特征图,直接外接检测头做目标检测。此种目标检测算法&#…

FPN(在FasterRCNN里面是如何运用的)

FPN(Feature Pyramid Networks) FPN解决了什么问题? 答:FPN的提出是为了实现更好的feature maps融合,一般的网络都是直接使用最后一层的feature maps,虽然最后一层的feature maps 语义强,但是位置和分辨率都比较低&…

深度学习之FPN+PAN

一、FPN 检测不同尺度的物体具有挑战性,尤其是对于小物体,我们可以使用不同尺度的同一图像的金字塔来检测物体(下左图)但是,处理多尺度图像非常耗时并且内存需求太高而无法同时进行端到端训练,因此创建了一…

FPN全解-最全最详细

这篇论文是CVPR2017年的文章,采用特征金字塔做目标检测,有许多亮点,特来分享。 论文:feature pyramid networks for object detection 论文链接:https://arxiv.org/abs/1612.03144 论文概述: 作者提出的…

FPN和PAN的内容及区别

FPN和PAN都是用于解决在目标检测中特征金字塔网络(FPN)在多尺度检测任务上的不足的方法。下面分别详细介绍一下它们的原理和区别。 FPN FPN全称Feature Pyramid Network,是由FAIR在2017年提出的一种处理多尺度问题的方法。FPN的主要思路是通过构建金字塔式的特征图…