二叉树前,中序推后续_中,后续推前序

news2024/11/28 18:41:50

文章目录

  • 介绍
  • 思路
  • 例子

介绍

二叉树是由根、左子树、右子树三部分组成。
二叉树的遍历方式又可以分为前序遍历,中序遍历,后序遍历。

前序遍历:根,左子树,右子树
中序遍历:左子树,根,右子树
后序遍历:左子树,右子树,根

比如定义一棵树:
在这里插入图片描述
它的前序遍历结果为:1 2 3 4 5 6
中序遍历结果为:3 2 1 5 4 6
后序遍历结果为:3 2 5 6 4 1
现在如果我们没有二叉树的图,只知道它的两种遍历的结果,如何求第三种遍历的结果呢?问题化简一下,我们只需知道完整的数的样子就能直接写出第三种遍历结果,所以我们需要用两种遍历的结果推出树的样子就好了。(两种遍历中必须包含中序遍历,只有前序遍历和后序遍历不能确定一棵树。)

思路

首先观察三种遍历的特点,主要思路就是找根节点的位置。

例子

比如给出一颗二叉树的中序遍历序列为JGDHKBAELIMCF,后序遍历序列为JGKHDBLMIEFCA。
由后续遍历最后一个是根结点,我们可以找到根是A。
再由中序遍历:根的左边是左子树,右边是右子树。所以A的左子树为JGDHKB,A的右子树为ELIMCF。
比较中序遍历的左右子树确定后序遍历中的左右子树
中:JGDHKB A ELIMCF
后:JGKHDB LMIEFC A
再次根据后续遍历找根,可以看出是B和C
然后在中序遍历的左右子树中再次找出根,左子树,右子树。一直重复直到最后只剩一个结点。下面以左子树为例。
2中:JGDHK B 此时没有右子树
2后:JGKHD B

根为D
3中:JG D HK
3后:JG KH D

根为G
4中:J G
4后:J G
所以可以得到树

在这里插入图片描述
所以它的前序遍历为:ABDGJHKCEILMF
前序+中序推后序与此类似。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Tor网络原理详解

引入 匿名通信是一种通过采用数据转发、内容加密、流量混淆等措施来隐藏通信内容及关系的隐私保护技术。为了提高通信的匿名性,这些数据转发链路通常由多跳加密代理服务节点构成,而所有这些节点即构成了匿名通信系统(或称匿名通信网络&#…

ReenterLock重入锁

synchronized就是一种最简单的控制方法,它决定了一个线程释放可以访问临界区资源。 同时,Object.wait()方法和Object.notify()方法起到了线程等待和通知的作用。 ReenterLock重入锁可以完全替代关键字Synchoronized.重入锁是Synchoronized、Object.wait(…

使用podman管理容器

目录 1.安装及配置podman 2.镜像的命名 3.对镜像重新做标签 4.删除镜像 5.查看镜像的层结构 6.导出和导入镜像 7.创建容器 8.创建一个简单的容器 9.容器的生命周期 10.创建临时容器 11.指定容器中运行的命令 12.创建容器时使用变量 对于初学者来说,不太容易理…

深入解析HashMap数据结构及其应用

目录 引言 1. HashMap简介 2. 哈希表的基本原理 3. HashMap的内部结构 4. 哈希冲突的处理 5. HashMap的常见操作 6. HashMap的性能优化 7. 实际应用场景 结论 引言 在计算机科学中,数据结构是构建和组织数据的一种方式,而HashMap是其中一种常用…

TCP单人聊天

TCP和UDP两种通信方式它们都有着自己的优点和缺点 这两种通讯方式不通的地方就是TCP是一对一通信 UDP是一对多的通信方式 TCP通信 TCP通信方式呢 主要的通讯方式是一对一的通讯方式,也有着优点和缺点 它的优点对比于UDP来说就是可靠一点 因为它的通讯方式是需…

ripro后台登录后转圈和图标不显示的原因及解决方法

最近,好多小伙伴使用ripro主题的小伙伴们都发现,登录后台后,进入主题设置就转圈,等待老半天后好不容易显示页面了,却发现图标不显示了,都统一显示为方框。 这是因为后台的js、css这类静态资源托管用的是js…

02-分组查询group by和having的使用

分组查询 MySQL中默认是对整张表的数据进行操作即整张表为一组, 如果想对每一组的数据进行操作,这个时候我们需要使用分组查询 分组函数的执行顺序: 先根据where条件筛选数据,然后对查询到的数据进行分组,最后也可以采用having关键字过滤取得正确的数据 group by子句 在一条…

FME之FeatureReader转换器按表格内容读取矢量数据

问题:平时会遇到只用某个大数据里某小部分数据参与下一步数据处理,此时我们会用到FeatureReader转换器,一般是通过空间关系(相交、包含)来读取相应涉及的图斑矢量,但就有一个问题,加入你的启动器…

JS中浅拷贝和深拷贝

本篇文章咱们一起来学习下JS中的浅拷贝和深拷贝,了解它们在内存上的区别,并掌握浅拷贝和深拷贝的常用实现方法。 引用赋值 在学习拷贝之前,咱们先来看一个常见的情景,如下图: 大家觉得这是深拷贝还是浅拷贝&#xff0…

ensp创建配置环境,实现全网互访

文章目录 创建配置环境,实现全网互访配置步骤接入层交换机(sw4、sw5)划分vlan汇聚层交换机(sw2、sw3)配置ip地址作为vlan网关、与sw1 ip地址直连核心层交换机(sw1)配置ip地址与汇聚层交换机&…

计算机网络:数据链路层(VLAN)

今天又学到一个知识,加油! 目录 一、传统局域网的局限(促进VLAN的诞生) 二、VLAN简介 三、VLAN的实现 总结 一、传统局域网的局限(促进VLAN的诞生) 缺乏流量隔离:即使把组流量局域化道一个单一交换机中…

Java小案例-RocketMQ的11种消息类型,你知道几种?(请求应答消息)

前言 Rocket的请求应答消息是指在使用Rocket(这里可能是RocketMQ或者Rocket框架)进行通信时,客户端发送一个请求到服务端,然后服务端处理该请求并返回一个响应的过程中的数据交换。 在RocketMQ中: 请求应答消息通常…

MySQL性能测试(完整版)

MySQL性能测试之SysBench 一、SysBench安装 1、mac安装命令:(其他系统安装对应的命令即可,不影响后面的使用) brew install sysbench2、查看是否安装成功; sysbench --version附: (1&#x…

The Grid – Responsive WordPress Grid响应式网格插件

点击阅读The Grid – Responsive WordPress Grid响应式网格插件原文 The Grid – Responsive WordPress Grid响应式网格插件是一个高级 wordpress 网格插件,它允许您在完全可定制且响应迅速的网格系统中展示任何自定义帖子类型。 Grid WordPress 非常适合展示您的博…

runCatching异常捕获onSuccess/onFailure返回函数,Kotlin

runCatching异常捕获onSuccess/onFailure返回函数,Kotlin fun test(a: Int, b: Int) {runCatching {a / b}.onSuccess {println("onSuccess: $it")return ok(it)}.onFailure {println("onFailure: $it")return fail(it)} }fun ok(o: Any) {prin…

QT第一步

文章目录 软件下载软件安装QT的程序组新建项目 软件下载 qt下载网址:https://download.qt.io/archive/qt/   关于版本:     我选择的版本是5.14.2,这个版本是最后的二进制安装包的版本,在往后的版本就需要在线安装了。并且5…

常用网安渗透工具及命令(扫目录、解密爆破、漏洞信息搜索)

目录 dirsearch: dirmap: 输入目标 文件读取 ciphey(很强的一个自动解密工具): john(破解密码): whatweb指纹识别: searchsploit: 例1: 例2: 例3&…

QT5 CMake进行开发

配置环境 因为是使用CMake进行开发,所以推荐使用的QT版本是 5.14.2。因为楼主有 vs2015的环境,所以在安装QT时选择的是 msvc 2015 64bit msvc 2017 32bit 勾选了所有需要的模块。kit配置如下 图中画框的地方是比较关键的地方,1. 指定编译器…

3. cgal 示例 GIS (Geographic Information System)

GIS (Geographic Information System) 地理信息系统 原文地址: https://doc.cgal.org/latest/Manual/tuto_gis.html GIS 应用中使用的许多传感器(例如激光雷达)都会生成密集的点云。此类应用程序通常利用更先进的数据结构:例如,不…

【STM32】STM32学习笔记-对射式红外传感器计次 旋转编码器计次(12)

00. 目录 文章目录 00. 目录01. NVIC相关函数1.1 NVIC_PriorityGroupConfig函数1.2 NVIC_PriorityGroup类型1.3 NVIC_Init函数1.4 NVIC_InitTypeDef类型 02. 外部中断相关API2.1 GPIO_EXTILineConfig2.2 EXTI_Init2.3 EXTI_GetITStatus2.4 EXTI_ClearITPendingBit2.5 中断回调函…