本文已参与「新人创作礼」活动,一起开启掘金创作之路。
GitHub同步更新(已分类):Data_Structure_And_Algorithm-Review
公众号:URLeisure 的复习仓库 (点击可见公众号二维码)
提示:以下是本篇文章正文内容,下面案例可供参考
一、树的遍历
- 树的遍历操作包括
先根遍历和后根遍历两种方式。
以下图树为例。
- 将此树转化为二叉树如图。
先序遍历:
中序遍历:
1). 先根遍历
-
如果树非空,则
先访问根节点,然后按从左向右的顺序,先跟遍历根节点的每一棵子树。(像是对树进行类似二叉树的先序遍历) -
树的先根遍历顺序与该树
对应的二叉树的先序遍历顺序相同。
(有个地方画的有点问题,但不影响观看)
2). 后根遍历
- 如果树非空,则按从左向右的顺序,后根遍历根节点的每一棵子树,
然后访问根节点。(像是对树进行类似二叉树的后序遍历步骤) - 树的后根遍历顺序与该树
对应的二叉树的中序遍历顺序相同。
二、森林的遍历
- 森林的遍历操作包括
先序遍历和中序遍历两种方式。
以下图森林为例。
- 将此森林转化为二叉树如图。
先序遍历:
中序遍历:
1). 先序遍历
- 如果森林非空,则
先访问第一棵树的根节点,先序遍历第一棵树的根节点的所有子树森林; - 先序遍历除第一棵树之外,剩余树构成的森林。(像是对森林进行类似二叉树的先序遍历步骤)
- 森林的先序遍历顺序与该森林
对应的二叉树的先序遍历顺序相同。
(有个地方画的有点问题,但不影响观看)
2). 中序遍历
- 如果森林非空,则中序遍历第一棵树的根节点的子树森林,
然后访问第一棵树的根节点; - 中序遍历除第一棵树之外,剩余树构成的森林。(像是对森林进行类似二叉树的后序遍历步骤)
- 森林的中序遍历顺序与该森林
对应的二叉树的中序遍历顺序相同。
中序遍历:
总结
树和森林的遍历与二叉树的遍历对应关系:
| 树 | 森林 | 二叉树 |
|---|---|---|
| 先根遍历 | 先序遍历 | 先序遍历 |
| 后根遍历 | 中序遍历 | 中序遍历 |
下期预告:实现树的深度、叶子数、节点数