数据结构--树和森林的遍历

数据结构–树和森林的遍历

树的先根遍历

void PreOrder(TreeNode* R)
{if (R != NULL){visit(R);while (R还有下一个子树T)PreOrder(T);}
}

树和二叉树的转化后==》

树的先根遍历序列与这棵树相应二叉树的先序序列相同。 \color{red}树的先根遍历序列与这棵树相应二叉树的先序序列相同。 树的先根遍历序列与这棵树相应二叉树的先序序列相同。

A B C D A ( B E F ) ( C G ) ( D H I ) A ( B ( E , K ) F ) ( C G ) ( D H I J ) \begin{array}{ccccccccc}\mathbf{A}&\mathbf{B}&&\mathbf{C}&&\mathbf{D}&\\\mathbf{A}&(\mathbf{B}&\mathbf{E}&\mathbf{F})&(\mathbf{C}&\mathbf{G})&(\mathbf{D}&\mathbf{H}&\mathbf{I})\\\mathbf{A}&(\mathbf{B}&(\mathbf{E},\mathbf{K})&\mathbf{F})&(\mathbf{C}&\mathbf{G})&(\mathbf{D}&\mathbf{H}&\mathbf{I}&\mathbf{J})\end{array} AAAB(B(BE(E,K)CF)F)(C(CDG)G)(D(DHHI)IJ)

树的后根遍历

void PreOrder(TreeNode* R)
{if (R != NULL){while (R还有下一个子树T)PreOrder(T);visit(R);}
}

树和二叉树的转化后==》

树的后根遍历序列与这棵树相应二叉树的中序序列相同。 \color{red}树的后根遍历序列与这棵树相应二叉树的中序序列相同。 树的后根遍历序列与这棵树相应二叉树的中序序列相同。

B C D A ( E F B ) ( G C ) ( H I J D ) A ( ( K E ) F B ) ( G C ) ( H I J D ) A \begin{array}{cccccccc}&&\text{B}&\text{C}&&&\text{D}&\text{A}\\(&\mathrm{E}&\mathrm{F}&\mathrm{B})&(\mathrm{G}&\mathrm{C})&(\mathrm{H}&\mathrm{I}&\mathrm{J}&\mathrm{D})&\mathrm{A}\\((\mathrm{K}&\mathrm{E})&\mathrm{F}&\mathrm{B})&(\mathrm{G}&\mathrm{C})&(\mathrm{H}&\mathrm{I}&\mathrm{J}&\mathrm{D})&\mathrm{A}\end{array} (((KEE)BFFCB)B)(G(GC)C)D(H(HAIIJJD)D)AA

树的层次遍历

广度优先遍历 \color{green}广度优先遍历 广度优先遍历

3) 层次遍历 \color{red}层次遍历 层次遍历(用队列实现)
①若树非空,则根节点入队
②若队列非空,队头元素出队并访问,同时将该元素的孩子依次入队
③重复②直到队列为空

森林的先序遍历

森林。森林是 m ( m ≥ 0 ) m (m\ge0) m(m0棵互不相交的树的集合。每棵树去掉根节点后,其各个子树又组成森林。

1) 先序遍历森林 \color{red}先序遍历森林 先序遍历森林
若森林为非空,则按如下规则进行遍历:
访问森林中第一棵树的根结点。
先序遍历第一棵树中根结点的子树森林。
先序遍历除去第一棵树之后剩余的树构成的森林。

效果等同于依次对各个树进行先根遍历 \color{red}效果等同于依次对各个树进行先根遍历 效果等同于依次对各个树进行先根遍历

BCD ( B E F ) ( C G ) ( D H I J ) (B(EKL) F) (C G) (D (H M) I J) \begin{aligned} &\text{BCD} \\ &(BEF)(CG)(DHIJ) \\ &\text{(B(EKL) F) (C G) (D (H M) I J)} \end{aligned} BCD(BEF)(CG)(DHIJ)(B(EKL) F) (C G) (D (H M) I J)

效果等同于依次对二叉树的先序遍历 \color{red}效果等同于依次对二叉树的先序遍历 效果等同于依次对二叉树的先序遍历

森林的中序遍历

森林。森林是 m ( m ≥ 0 ) m (m\ge0) m(m0棵互不相交的树的集合。每棵树去掉根节点后,其各个子树又组成森林。

2) 中序遍历森林 \color{red}中序遍历森林 中序遍历森林
若森林为非空,则按如下规则进行遍历:
中序遍历森林中第一棵树的根结点的子树森林。访问第一棵树的根结点。
中序遍历除去第一棵树之后剩余的树构成的森林。

效果等同于依次对各个树进行后根遍历 \color{red}效果等同于依次对各个树进行后根遍历 效果等同于依次对各个树进行后根遍历

B C D ( E F B ) ( G C ) ( H J D ) ( ( K L E ) F B ) ( G C ) ( ( M H ) I J D ) \begin{array}{cccccccc}&&&&\text{B}&&\text{C}&&\text{D}\\(&&&E&\text{F}&\text{B})&(\text{G}&\text{C})&(&\text{H}&\text{J}&\text{D})\\((\text{K}&\text{L}&\text{E})&\text{F}&\text{B})&(\text{G}&\text{C})&((\text{M}&\text{H})&\text{I}&\text{J}&\text{D})\end{array} (((KLE)EFBFB)B)(GC(GC)C)((MD(H)HIJJD)D)

效果等同于依次对二叉树的中序遍历 \color{red}效果等同于依次对二叉树的中序遍历 效果等同于依次对二叉树的中序遍历

知识点回顾与主要考点

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/19827.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

串口的再认识

常用函数介绍 串口发送/接收函数 HAL_UART_Transmit(); 串口发送数据,使用超时管理机制(即在发送成功前一直阻塞) HAL_UART_Receive(); 串口接收数据,使用超时管理机制 HAL_UART_Transmit_IT(); 串口中断模式发送 HAL_UART…

C++ 变量类型

C 变量类型 变量其实只不过是程序可操作的存储区的名称。 在 C 中,有多种变量类型可用于存储不同种类的数据。 C 中每个变量都有指定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量…

Pytorch实现warm up和consine decay

在深度学习领域,模型训练过程中的不稳定性是一个常见的问题。为了解决这个问题,在Resnet这篇论文也提及了Warm Up的方法,通过逐渐增加学习率,引导模型在训练初期更稳定地收敛。同时在warm up之后结合consine decay的方法让训练变得…

辅助驾驶功能开发-功能规范篇(22)-3-L2级辅助驾驶方案功能规范

1.3.3 TLA系统功能定义 1.3.3.1 状态机 1.3.3.2 状态迁移图 1.3.3.3 功能定义 1.3.3.3.1 信号需求列表 1.3.3.3.2 系统开启关闭 1)初始化 车辆上电后,交通灯辅助系统(TLA)进行初始化,控制器需在 220ms 内发出第一帧…

Spring-Interceptor拦截器

使用步骤 申明拦截器bean,并实现HandlerInterceptor接口 true为放行,false为拦截 2.定义配置类,继承WebMvcConfigurationSupport,实现addInterceptors方法,该方法调用具体的拦截器进行拦截 也可以在配子类通过实现W…

JMeter进行WebSocket压力测试

背景 之前两篇内容介绍了一下 WebSocket 和 SocketIO 的基础内容。之后用 Netty-SocketIO 开发了一个简单的服务端,支持服务端主动向客户端发送消息,同时也支持客户端请求,服务端响应方式。本文主要想了解一下服务端的性能怎么样,…

一百二十九、Kettle——从MySQL增量导入到GreenPlum

一、目标 用Kettle从MySQL增量导入数据到GreePlum 二、前提准备 (一)kettle已连上MySQL (二)kettle已连上GreenPlum 三、实施步骤 (一)打开kettle,新建转换任务。拖拽2个表输入、替换NULL…

Spring 如何解决 Bean 的循环依赖(循环引用)

Component public class A {Autowiredprivate B b;}Component public class B {Autowiredprivate A a;}上面的情况就是 循环依赖 Bean的创建初始化过程如下 如果不采取措施,那么循环依赖就会进入死循环 但 Spring 已经帮我们解决了大部分循环依赖问题 具体是如何解…

prompt:有需求就有价值,prompt案例

prompt:有需求就有价值 此文章来自于小七姐 首先来看需求: 客户需要生成1000条俏皮灵动,趣味盎然,比喻精妙的和美食有关的短句子,要求文风优美,句子让人充满食欲。 客户使用这些句子的场景比较奇妙&…

路径规划算法:基于食肉植物优化的路径规划算法- 附代码

路径规划算法:基于食肉植物优化的路径规划算法- 附代码 文章目录 路径规划算法:基于食肉植物优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化…

2023年Q2空调行业品牌数据榜单(京东商品数据)

随着夏季的来临,高温天气也带动部分家电行业的销售,以空调为代表的家电市场正逐步恢复活力。结合鲸参谋电商数据分析平台的相关数据,我们来分析一下2023年Q2空调市场的具体销售表现。 根据鲸参谋平台的数据显示,2023年4-6月份&am…

数据库备份恢复和索引视图

样例表如下: /***************************样例表***************************/CREATE DATABASE booksDB;use booksDB;CREATE TABLE books(bk_id INT NOT NULL PRIMARY KEY,bk_title VARCHAR(50) NOT NULL,copyright YEAR NOT NULL);INSERT INTO booksVALUES (1107…