news 2026/4/3 6:10:05

第7章树和二叉树:树和森林的遍历

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第7章树和二叉树:树和森林的遍历

7.10 树和森林的遍历

1. 树的遍历

由树结构的定义,可以引出两种次序遍历树的方法:

(1)先根(次序)遍历

先访问树的根结点,然后依次先根遍历根的每棵子树。

以图 7.10.1 所示的树为例,先根遍历,可得树的先根序列为:RADEBCFGHK

图 7.10.1 树

(2)后根(次序)遍历

先依次后根遍历每棵子树,然后访问根结点。

以图 7.10.1 所示的树为例,后根遍历,可得树的后根序列为:DEABGHKFCR

2. 森林的遍历

按照森林和树相互递归的定义,森林也有两种遍历方法

(1)先序遍历

若森林非空,按照下述规则遍历:

① 访问森林中第一棵树的根结点;

② 先序遍历第一棵树的根结点的子树森林;

③ 先序遍历除去第一棵树之后剩余的树构成的森林

如图 7.10.2 所示的森林,根据先序遍历,得到森林的先序序列为:ABCDEFGHIJ

图 7.10.2 森林

(2)中序遍历

若森林为空,则可按下述规则遍历:

① 中序遍历森林中第一棵树的根结点的子树森林;

② 访问第一棵树的根结点;

③ 中序遍历除去第一棵树之后剩余的树构成的森林。

如图 7.10.2 所示的森林,根据中序遍历,得到森林的中序序列为:BCDAFEHJIG

由森林与二叉树之间转换的规则可知,当森林转换成二叉树时,其第一棵树的子树森林转换成左子树,剩余树的森林转换成右子树,则上述森林的先序和中序遍历即为其对应的二叉树的先序和中序遍历。

将图 7.10.2 所示的森林转换为二叉树,如图 7.10.3 所示,对该二叉树分别进行先序和中序遍历,可得和上述相同的序列。

图 7.10.3 由森林转换的二叉树

当以二叉链表做树的存储结构时,树的先根遍历和后根遍历可借用二叉树的先序遍历和中序遍历的算法实现。

树、森林的遍历与二叉树的遍历的对应关系:

森林二叉树
先根遍历先序遍历先序遍历
后根遍历中序遍历中序遍历
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/28 1:14:59

第7章树和二叉树:哈夫曼树

7.11 哈夫曼树 1. 哈夫曼树的基本概念 哈夫曼树,是二叉树的一个具体应用。有关概念如下: 路径:从树中一个结点到另一个结点之间的分支构成这两个结点之间的路径。路径长度:路径上的分支数目称作路径长度。树的路径长度&#xf…

作者头像 李华
网站建设 2026/3/27 6:37:11

基于单片机技术的智能消防系统设计

第一章 设计背景与核心需求 在工业生产与民用建筑中,火灾隐患时刻威胁公共安全,传统消防系统存在响应滞后、报警方式单一、联动性差等问题,难以实现早期预警与快速处置。基于单片机技术的智能消防系统凭借实时监测、快速响应、集成度高的优势…

作者头像 李华
网站建设 2026/3/31 23:31:28

LangFlow镜像变量作用域机制:避免命名冲突的最佳实践

LangFlow镜像变量作用域机制:避免命名冲突的最佳实践 在构建AI驱动的应用时,一个看似微小却可能引发连锁反应的问题正悄然浮现——变量命名冲突。尤其是在使用如LangFlow这类图形化工作流工具进行LLM(大型语言模型)流程编排时&…

作者头像 李华
网站建设 2026/3/31 11:10:22

【外卖系统稳定性保障】:基于Open-AutoGLM的订单异常自动恢复机制详解

第一章:外卖系统稳定性保障概述现代外卖平台承载着海量用户请求与高并发订单处理,系统的稳定性直接关系到用户体验、商家运营及平台信誉。在高峰时段如午晚餐期间,系统可能面临瞬时流量激增、服务响应延迟甚至雪崩的风险。因此,构…

作者头像 李华
网站建设 2026/3/20 11:28:55

外卖平台订单积压难题终结者(Open-AutoGLM架构深度解析)

第一章:外卖平台订单积压难题终结者(Open-AutoGLM架构深度解析)在高并发场景下,外卖平台常面临订单积压、响应延迟等系统瓶颈。Open-AutoGLM 架构应运而生,专为解决实时任务调度与资源动态分配问题设计,通过…

作者头像 李华