什么是树的先/中/后序遍历

news2024/12/26 23:37:25

前言

很久没有写c++教程(有几个月)了,今天来讲讲树

为什么之前不讲树因为我不会但我现在能写出一些树的选择题了

首先我们画一棵树:

有些潦草 

遍历是什么

我们要研究先/中/后序遍历,我们应该先知道什么叫遍历

遍历就是对每一个数访问一次,想我们之前写数组的时候,数组长度为n,然后我们循环1到n去研究数组的每一项,这就是遍历

在研究树的时候,我们的遍历就是访问树的每一个节点

先/中/后序就是我们遍历时的顺序(如果没有顺序的话,某个节点就可能访问多次)

先序遍历

先序遍历就是依次找树中的根节点,左孩子,右孩子

比如在上图中,先序遍历得到的遍历顺序就是124758639

中序遍历

很简单啊,那么中序遍历,就是依次找左孩子,根节点,右孩子

在上图中,中序遍历的顺序是:748532193

注意!!!我们找左孩子的时候,是找最左边的左孩子(7),很多人会找2而不是7

我们不应该找2,因为2是一个根节点,也不要找4, 4也是根节点,7不是根节点,是左孩子,我们先写7上去

7完了,我们要写4,因为没有左子树了,就找根节点,4是7的根节点

4没有右孩子,所以我们下一个找4的根节点(2)

2的根节点是1………………………………

这样找下去            

把图放这里方便你们看:

后序遍历

后序遍历是依次找左孩子,右孩子,根节点

和中序遍历一样,我们要注意,找到最左边和最右边

后序遍历的顺序是748652931

最左边是7,没有右孩子,所以找根节点4

接下来不!要!找!2!找8,他是右子树中的最左边……

找下去

总结

先序遍历顺序:根节点,左边,右边

中序遍历顺序:左边,根节点,右边

后序遍历顺序:左边,右边,根节点

我们发现,先中后的意思是根节点的位置,先序就是先找根节点


写完了

最近正在研究csp j的选择题因为我觉得代码题写不出来

还想说点别的话的,但不知道说什么

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

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

相关文章

论文精要:《对静态分析缺陷报告进行聚类,以降低维护成本》

1. 前言 周末找到一篇《对静态分析缺陷报告进行聚类,以降低维护成本》,读了之后受到不少启发,特此将笔记整理出来。 论文出处: Published in: 2013 20th Working Conference on Reverse Engineering (WCRE)Date of Conference:…

疫情期间高校人员管理

TOC springboot322疫情期间高校人员管理 绪论 1.1 选题背景 当人们发现随着生产规模的不断扩大,人为计算方面才是一个巨大的短板,所以发明了各种计算设备,从结绳记事,到算筹,以及算盘,到如今的计算机&a…

C语言家教记录(六)

导语 本次授课的内容如下:指针,指针和数组 辅助教材为 《C语言程序设计现代方法(第2版)》 指针 指针变量 计算机按字节划分地址,每个地址访问一个字节 指针变量指向变量的地址,指的是变量第一个字节的…

MySQL InnoDB中一个update语句从执行到提交的全过程(1)

目录 一、开启事务 二、sql解析、查询计划生成 三、查询要修改的数据 1、读buffer pool的过程 buffer pool的结构组成 1)Free List (空闲链表) 2)LRU List (最近最少使用链表) 3)Flush List (刷新链表) 三条链表之间的关系 2、怎么…

[Linux][OS][信号的保存和处理]

目录 信号的处理 1. 在内核中的表示 2. 相关概念 3. 信号集操作函数 4.sigprocmask 5.sigpending 信号的捕捉 重谈地址空间 信号的处理 1. 在内核中的表示 普通信号,多次产生只会记录一次 信号范围 [1,31],每一种信号都要有自己的一种处理方式…

Java Spring|day3.SpringBoot

Spring Boot 定义 从本质上来说,Spring Boot就是Spring,它做了那些没有它你自己也会去做的Spring Bean配置。Spring Boot使用“习惯优于配置”的理念让你的项目快速地运行起来,使用Spring Boot很容易创建一个能独立运行、准生产级别、基于S…

SpringBoot + Hadoop + HDFS + Vue 实现一个简单的文件管理系统

1. 安装前的准备工作 1.1 更新系统并安装必要的工具 在终端中运行以下命令: sudo apt-get update sudo apt-get install -y ssh rsync curl1.2 安装 Java 如果系统中没有安装 Java,可以通过以下命令安装 OpenJDK: sudo apt-get install …

软件安全测试的必要性,第三方软件测试机构进行安全测试好处简析

在当前信息技术迅猛发展的时代,软件的安全性显得尤为重要。随着越来越多的企业依赖软件进行日常运营,软件漏洞和安全隐患所带来的风险也逐渐上升。因此,软件安全测试不再是可有可无的选择,而是每个企业必须考虑的关键环节。 一、…

Node之npm常用命令与package.json文件

新书速览|Vue.jsNode.js全栈开发实战-CSDN博客 《Vue.jsNode.js全栈开发实战(第2版)(Web前端技术丛书)》(王金柱)【摘要 书评 试读】- 京东图书 (jd.com) npm常用命令 npm默认与Node.js一起安装,可以在命令行中输入…

达梦数据库系列—49.审计功能

目录 1、打开审计 2、审计级别 系统级审计 语句级审计 对象级审计 3、审计文件管理 删除审计文件 查看审计信息 4、审计分析 审计分析工具Analyzer 审计分析工具dmaudtool 1、打开审计 0:关闭审计1:打开普通审计2:打开普通审计和…

qt 5.15.2 使用pdf

1. 安装Qt 5.15.2 选择对应编译器和源码: 安装后已有pdf对应的库和源码: 将QtPdf和QtPdfWidgets目录拷贝到msvc2019_64/include(根据需要用到的编译器而定) 将C:\Qt\5.15.2\Src\qtwebengine\src\pdf\api所有文件拷贝到C:\Qt\5.15.2\msvc2019_64\include\…

低功耗蓝牙协议栈如何学习?

目录 1. 基础知识 1.1 了解BLE基本概念 1.2 阅读BLE规范 2. 实践和开发工具 2.1 使用开发板 2.2 安装开发环境 3. 学习资源 3.1 官方文档和示例 3.2 在线课程和教程 4. 实践项目 4.1 简单项目 4.2 复杂项目 5. 深入理解协议栈 5.1 分析协议栈 5.2 调试和分析 6…

v-charts的下载与引用

近期,因项目需要,需用v-charts做一些登录后首页的展示图,按之前的逻辑echarts官网都有API直接拿来用就行了,但是我的项目框架是vuespringboot,我的vue版本是2.6.1,这个v-charts文档在网上搜了搜&#xff0c…

nginx服务部署及其平滑升级

概述 1. 7层负载均衡(nginx) 1. 停掉4层的环境 systemctl disable --now keepalived.service # 停用之前的4层协议方式2. 源码安装nginx tar zxf nginx-1.22.1.tar.gz 具体方式是源码编译“三部曲” ./configure # 负责检查环境,生成指导…

每日OJ_牛客_星际密码(矩阵+斐波那契)

目录 牛客_星际密码(矩阵斐波那契) 解析代码 牛客_星际密码(矩阵斐波那契) 星际密码__牛客网 解析代码 这个题目首先需要明确矩阵是固定的,其次是矩阵相乘的方法。解题思路:初始化斐波那契数列&#xff…

leetcode刷题-二叉树05

代码随想录二叉树part05|654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树 654.最大二叉树一遍过,不过貌似有多种解法,后序再补充 617.合并二叉树700.二叉搜索树中的搜索98.验证二叉搜索树看其他解题方法 654.最大二叉树 代码…

RCE的另外一些绕过练习

目录 被过滤了flag怎么办 方法 结果 过滤了flag、php、system 方法一 结果 ​编辑 方法二 过滤了很多但是主要的就是过滤了空格 和 注意一下这个就行 方法一 方法二 相对于上面一道题来说多过滤了一个括号 方法一 被过滤了flag怎么办 <?php error_reportin…

29岁才转行软件测试,目前31了,我的一些经历跟感受

按惯例&#xff0c;先说下我基本情况。我是90年的&#xff0c;算是最早的90后&#xff0c;现在跟你介绍的时候还恬不知耻的说我是90后&#xff0c;哈哈&#xff0c;计算机专业普通本科毕业。在一个二线城市&#xff0c;毕业后因为自身能力问题、认知水平问题&#xff0c;再加上…

Cesium倾斜相机视角观察物体

先看效果&#xff1a; 在cesium中&#xff0c;我们有时需要倾斜相机视角去观察物体&#xff0c;如相机俯视45观察物体。 cesium的api提供了倾斜相机视角的配置&#xff0c;但是直接使用cesium的api不能达到我们想要的效果。 函数如下&#xff1a; function flyToBox() {let l…

XSS反射性

目录 1.URL 编码 "javascript:alert(1)" 2.HTML字符实体编码 &#;"javascript" 和 URL 编码 "alert(2)" 3.URL 编码 ":" 就是%3a 4.HTML字符实体编码 < 和 > 5.HTML字符实体编码 < 和 > 6.<s…