树和森林的遍历

简介: 树和森林的遍历

树和森林的遍历


一、树的遍历


数的结构是一个根加上森林,而森林又是树的集合,由此我们可以引出树的两种遍历方式(这两种遍历方式本身也是一种递归定义)。


1、先根(先序)遍历:即先访问树的根结点,然后依次先根遍历根的每棵子树


2、后根(后序)遍历:即先依次后根遍历根的每棵子树,然后访问根结点


3、另外还有一种层序遍历,这种遍历就是自上向下,自左向右按层次进行遍历即可


微信图片_20220111211053.png


根据上面的两种遍历定义可得上图树的遍历结果如下:


先根遍历:ABEFCDGHIJK

后根遍历:EFBCIJKHGDA

层次遍历:ABCDEFGHIJK


二、森林的遍历

森林由三部分构成:森林中第一个树的根结点+森林中第一颗树的根结点的子树森林+森林中除去第一棵树而由其它树构成的森林。按照森林和树相互递归的定义,我们可以推出森林的两种遍历方(这两种遍历方法也是递归定义)。


1、先序遍历森林,访问规则如下:

第一、先访问森林中第一棵树的根结点

第二、然后,先序遍历第一棵树中根结点的子树森林(相当于二叉树的左子树)

第三、然后,先序遍历除去第一棵树之后剩余的树构成的森林(相当于二叉树的右子树)


2、中序遍历森林

第一、中序遍历第一棵树中根结点的子树森林(相当于二叉树的左子树)

第二、然后,访问森林中第一棵树的根结点

第三、然后,中序序遍历除去第一棵树之后剩余的树构成的森林(相当于二叉树的右子树)


微信图片_20220111211116.png


将上面的树的根结点去掉得到的森林,按照森林的两种遍历方法得到的结果如下:


先序遍历:BEFCDGHIJK


中序遍历:EFBCIJKHGD



三、总结


对照上面树和图的遍历我们可以得到树、森林、二叉树遍历的对应关系


树的遍历 对应 森林的遍历 对应 二叉树的遍历
先根遍历 -> 先序遍历 -> 先序遍历
后根遍历 -> 中序遍历 -> 中序遍历




相关文章
|
7月前
|
存储 人工智能 算法
图与树的遍历:探索广度优先、深度优先及其他遍历算法的原理与实现
图与树的遍历:探索广度优先、深度优先及其他遍历算法的原理与实现
452 0
|
1月前
|
算法
树的遍历算法有哪些?
不同的遍历算法适用于不同的应用场景。深度优先搜索常用于搜索、路径查找等问题;广度优先搜索则在图的最短路径、层次相关的问题中较为常用;而二叉搜索树的遍历在数据排序、查找等方面有重要应用。
36 2
|
7月前
|
存储 机器学习/深度学习 人工智能
树和森林 查找
树和森林 查找
40 2
|
7月前
|
存储
树的存储结构以及树,二叉树,森林之间的转换
树的存储结构以及树,二叉树,森林之间的转换
34 0
|
7月前
|
算法 测试技术 C#
【深度优先搜索】1766. 互质树
【深度优先搜索】1766. 互质树
|
7月前
|
存储 算法
哈夫曼树(赫夫曼树、最优树)详解
哈夫曼树(赫夫曼树、最优树)详解
152 0
|
7月前
|
机器学习/深度学习 存储 算法
树【二叉树,红黑树,B树,B+树】
树【二叉树,红黑树,B树,B+树】
72 0
|
7月前
|
算法
树的深度优先和广度优先
树的深度优先和广度优先
47 0
|
算法
算法系列-多叉树的遍历
在内卷潮流的席卷下,身为算法小白的我不得不问自己,是否得踏上征程,征服这座巍巍高山。 从零开始,终点不知何方,取决于自己可以坚持多久。 希望你可以和我一样,克服恐惧,哪怕毫无基础,哪怕天生愚钝,依然选择直面困难。