news 2026/4/16 9:17:43

第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/4/16 12:59:52

LangFlow镜像Facebook广告优化:基于用户行为智能调整

LangFlow镜像Facebook广告优化:基于用户行为智能调整 在数字营销的战场上,广告创意的生命周期正变得越来越短。一条原本点击率高达3%的Facebook广告,可能在两周后骤降至1.2%,不是因为产品不好,而是用户“看腻了”。传统…

作者头像 李华
网站建设 2026/4/16 14:49:57

为什么头部外卖品牌都在悄悄部署Open-AutoGLM?真相令人震惊

第一章:为什么头部外卖品牌都在悄悄部署Open-AutoGLM?在竞争激烈的本地生活服务市场,响应速度与个性化体验已成为外卖平台的核心竞争力。越来越多头部外卖品牌选择部署开源大模型框架 Open-AutoGLM,以实现从用户对话理解、智能调度…

作者头像 李华
网站建设 2026/4/15 20:09:10

集群无人机轨迹跟踪与故障响应分析的研究源程序与中文参考学术文档

集群无人机轨迹跟踪与故障响应分析的研究源程序与中文参考学术文档 【项目介绍】 全套5页学术课程报告MATLAB/Simulink源程序,详细记录了基于图论构建的四代理集群无人机轨迹跟踪与能量管理仿真实验。报告涵盖系统拓扑构建、动力学参数设计、故障响应分析、能量曲线…

作者头像 李华
网站建设 2026/4/16 12:46:00

用FileStream处理大文件:为什么必须用using语句管理资源?

当开发者在.NET生态系统中处理大文件时,FileStream类往往是直接与文件系统进行字节级交互的核心工具。它提供了对文件读取和写入的精细控制,尤其适用于需要处理超出内存容量的大型数据文件,或对性能有严格要求的场景。理解其正确的工作模式与…

作者头像 李华