数据结构--由遍历序列构造二叉树

数据结构–由遍历序列构造二叉树

不同二叉树的中序遍历序列

中序遍历:中序遍历 左 \color{red}左 子树、 根 \color{purple}根 结点、中序遍历 右 \color{green}右 子树

中序遍历序列:BDCAE

结论 : 一个中序遍历序列可能对应多种二叉树形态 \color{green}结论:一个中序遍历序列可能对应多种二叉树形态 结论:一个中序遍历序列可能对应多种二叉树形态

不同二叉树的前序遍历序列

前序遍历: 根 \color{purple}根 结点、前序遍历 左 \color{orange}左 子树、前序遍历 右 \color{green}右 子树

前序遍历序列:BDCAE

结论 : 一个前序遍历序列可能对应多种二叉树形态 \color{green}结论:一个前序遍历序列可能对应多种二叉树形态 结论:一个前序遍历序列可能对应多种二叉树形态

不同二叉树的后序遍历序列

后序遍历:前序遍历 左 \color{red}左 子树、前序遍历 右 \color{green}右 子树、 根 \color{purple}根 结点

后序遍历序列:BDCAE

结论 : 一个后序遍历序列可能对应多种二叉树形态 \color{green}结论:一个后序遍历序列可能对应多种二叉树形态 结论:一个后序遍历序列可能对应多种二叉树形态

不同二叉树的层序遍历序列

层序遍历序列:BDCAE

结论 : 一个层序遍历序列可能对应多种二叉树形态 \color{green}结论:一个层序遍历序列可能对应多种二叉树形态 结论:一个层序遍历序列可能对应多种二叉树形态

结论 : 若只给出一棵二叉树的前 / 中 / 后 / 层序遍历序列中的一种,不能唯一确定一棵二叉树 \color{red}结论:若只给出一棵二叉树的前/中/后/层序遍历序列中的一种,不能唯一确定一棵二叉树 结论:若只给出一棵二叉树的前///层序遍历序列中的一种,不能唯一确定一棵二叉树

前序+中序遍历序列

前序遍历: 根 \color{purple}根 结点、前序遍历 左 \color{orange}左 子树、前序遍历 右 \color{green}右 子树
中序遍历:中序遍历 左 \color{red}左 子树、 根 \color{purple}根 结点、中序遍历 右 \color{green}右 子树

Eg1:
前序遍历序列:A D B C E
中序遍历序列:B D C A E

Eg2:
前序遍历序列:D A E F B C H G l
中序遍历序列:E A F D H C B G I

后序+中序遍历序列

后序遍历:前序遍历 左 \color{red}左 子树、前序遍历 右 \color{green}右 子树、 根 \color{purple}根 结点

中序遍历:中序遍历 左 \color{red}左 子树、 根 \color{purple}根 结点、中序遍历 右 \color{green}右 子树

Eg:

后序遍历序列:E F A H C I G B D
中序遍历序列:E A F D H C B G l

层序+中序遍历序列

Eg:
层序遍历序列:D A B E F C G H l
中序遍历序列:E A F D H C B G l

若前序、后序、层序序列两两组合?

前序遍历序列:AB
后序遍历序列:BA
层序遍历序列:AB

结论 : 前序、后序、层序序列的两两组合无法唯一确定一棵二叉树 \color{green}结论:前序、后序、层序序列的两两组合无法唯一确定一棵二叉树 结论:前序、后序、层序序列的两两组合无法唯一确定一棵二叉树

知识点回顾与重要考点

Key:
找到树的根节点,并根据中序序列划分左右子树,再找到左右子树根节点

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

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

相关文章

[NISACTF 2022]babyserialize(pop链构造与脚本编写详细教学)

目录 一、理清pop链并进行标注 二、如何编写相关脚本 三、过滤与绕过 1、waf的绕过 2、preg_match的绕过 做这道题作为pop链的构造很典型,也很有意思,因为还存在一些其他东西。 打开链接,这种很多类的PHP代码多半是需要构造pop链 一、理…

stm32_<一文通>_cubemx_freertos

文章目录 前言一、任务调度1.1 延时1.1.1 相对延时1.1.2 绝对延时 1.2 挂起和恢复1.2.1 cmsis的挂起和恢复函数1.2.2 freertos的挂起和恢复函数 1.3 删除1.3.1 cmsis的删除任务函数1.3.2 freertos的删除任务函数 二、Freertos任务与中断三、消息队列3.1 写入和读取一个数据3.2 …

什么是数据一致性

什么是数据一致性 数据一致性这个单词在平常开发中,或者各种文章中都能经常看见,我们常常听见什么东西数据不一致了,造成了一定的损失,赶快修复一下。但是很多同学对一致性具体代表什么意思,他有什么作用依然不是很了解…

一文弄懂Java日志框架

文章目录 日志的概念日志门面JUL日志框架JUL架构入门案例日志的级别Logger之间的父子关系日志的配置文件日志原理解析 LOG4J日志框架Log4j入门Log4j组件LoggersAppendersLayouts Layout的格式Appender的输出自定义Logger JCL日志门面JCL入门JCL原理 SLF4J日志门面SLF4J入门绑定…

Redis优化

目录 一、Redis高可用 二、Redis持久化 1.RDB持久化 1.1触发条件 1.1.1手动触发 1.1.2自动触发 1.2其他自动触发机制 1.3执行流程 1.4启动时加载 2.AOF 持久化 2.1开启AOF 2.2执行流程 2.2.1命令追加(append) 2.2.2文件写入(write)和文件同步(sync) 2.2.3文件重…

TCP Socket性能优化秘籍:掌握read、recv、readv、write、send、sendv的最佳实践

TCP Socket性能优化秘籍:掌握read、recv、readv、write、send、sendv的最佳实践 博主简介一、引言1.1、TCP Socket在网络通信中的重要性1.2、为什么需要优化TCP Socket的性能? 二、TCP Socket读操作的性能优化2.1、read、recv、readv的功能和用法2.2、提…

S32K14x FlexCAN入门

每个系列S32K14x支持的邮箱个数。 基本每个系列的FlexCAN0可以支持32个报文缓存和支持CANFD。 中断源 mail 最多有32个mail • 灵活的消息缓冲区 (MB),总共 32 个消息缓冲区,数据长度为 8 字节 每个,可配置为 Rx 或 Tx 过滤掩码功能 强…

应对Python爬虫IP被封的策略及建议。

我们在进行数据抓取使用代理ip的时候需要有一些约束规定,才能保证我们持续稳定的抓取数据。 大概整理了一下,需要注意以下几点,仅供参考: 1、使用高质量的代理服务器:选择一些可靠的代理服务器,确保它们的…

Intellij IDEA 初学入门图文教程(八) —— IDEA 在提交代码时 Performing Code Analysis 卡死

在使用 IDEA 开发过程中,提交代码时常常会在碰到代码中的 JS 文件时卡死,进度框上显示 Performing Code Analysis,如图: 原因是 IDEA 工具默认提交代码时,分析代码功能是打开的,需要通过配置关闭下就可以了…

.net项目开发-EF框架解决添加默认值问题

文章目录 前言EF中核心类DbContextDbContext中的SaveChanges()方法重写SaveChanges()方法注意点-Modified 其它状态下的实体如何操作 前言 最近开发.net项目,持久层用的是EF框架,也是第一次使用这个框架,用这个框架的好处就是基于实体的开发…

MyBatis中的动态SQL(sql标签、where标签、set标签、批量增加与批量删除)

目录 sql标签 ​编辑 where标签 set标签 foreach标签 批量增加 批量删除 将基础SQL语句中重复性高的增加它的复用性&#xff0c;使得sql语句的灵活性更强 sql标签<sql> <sql id"text">select * from user</sql><select id"selectA…

基于simulink处理监控视频以选择包含运动的帧(附源码)

一、前言 此示例演示如何处理监控视频以选择包含运动的帧。安全问题要求使用摄像机对重要位置进行持续监控。为了有效地记录、查看和存档这些海量数据&#xff0c;您可以减小视频帧大小或减少录制的视频帧总数。此示例说明了后一种方法。在其中&#xff0c;相机视野中的运动会…