数据结构速成--树和二叉树

由于是速成专题,因此内容不会十分全面,只会涵盖考试重点,各学校课程要求不同 ,大家可以按照考纲复习,不全面的内容,可以看一下小编主页数据结构初阶的内容,找到对应专题详细学习一下。  

 气死了气死了,为什么这个图片会有水印,而且水印还这么奇怪!!!!!!!

目录

一、树的基本概念

二、二叉树

​三、二叉树的遍历

1. 四种遍历

2. 线索树

四、树和森林

1. 树转换成二叉树

2. 森林转换成二叉树

3. 二叉树转换成森林

五、二叉排序树

六、哈夫曼树

1. 构造哈夫曼树

2. 哈夫曼编码

【书后典型例题】


一、树的基本概念

  • 根到结点的唯一路径上的任意结点,称为结点的祖先
  • 路径上最接近结点的结点称为的双亲,而为结点的孩子
  • 树中一个结点的孩子个数称为该结点的,树中结点的最大度数称为树的度。
  • 度大于的结点称为分支结点(又称非终端结点);度为(没有孩子结点)的结点称为叶子结点(又称终端结点)。
  • 有相同双亲的结点称为兄弟
  • 结点的层次从树根开始递归定义,根结点为第层,它的子结点为第层。
  • 结点的深度是从根结点开始自顶向下逐层累加。
  • 结点的高度是从叶结点开始自底向上逐层累加。
  • 树的高度(或深度)是树中结点的最大层数。
  • 有序树无序树。树中结点的各子树从左到右是有次序的,不能互换,称该树为有序树,否则称为无序树。假设图为有序树,若将子结点位置互换,则变成一颗不同的树。
  • 路径路径长度。树中两个结点之间的路径是由这两个结点之间所经过的结点序列构成的,而路径长度是路径上所经过的边的个数。

二、二叉树

三、二叉树的遍历

1. 四种遍历

先序(前序)遍历:根->左子树->右子树

中序遍历:左子树->根->右子树

后序遍历:左子树->右子树->根

层序遍历:按顺序把每一行的结点输出

注意:在知道遍历的结果,需要还原二叉树时,只知道一种遍历结果是不能还原的。必须要知道中序遍历+其他任一种遍历结果才可还原。还原二叉树的重点就在于找到根节点。

 以前序遍历+中序遍历为例:

2. 线索树

        什么线索树就先把对应的遍历结果写出来。用虚线的箭头画出前驱和后继结点。没有左孩子就画前驱,没有右孩子就画后继,叶子结点既要画前驱也要画后继。

注意:遍历结果的最后一个有时候没有右孩子,这个时候要画一个指向null。第一个有时候没有左孩子,也要指向null

PS: 看不懂这里的可以看一下最后一部分的例题。

四、树和森林

         树的存储结构:双亲表示法、孩子表示法、孩子兄弟表示法

1. 树转换成二叉树

2. 森林转换成二叉树

3. 二叉树转换成森林

        实际上就是森林变成二叉树的逆过程。

五、二叉排序树

六、哈夫曼树

1. 构造哈夫曼树

 注意:这个地方是要从新构造的结点和其他剩余的结点里取最小的继续构造,但是当遇到新构造的结点值在其他剩余的结点里有相同的值,优先使用原来就提供的结点。(可以看一下最后一个例题,顺便了解一下初态和终态

2. 哈夫曼编码

        这一步就很简单了,左子树为0,右子树为1,然后从根节点开始读就可以了。

【书后典型例题】

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

springboot + Vue前后端项目(第二十记)

项目实战第二十记 写在前面1. 高德地图官网2. 开发文档3. 集成高德地图3.1 在public文件夹下创建config.js3.2 index.html(在项目启动文件中引入外部的js)3.3 点标记(用点标记当前位置)3.4 信息窗体(点击当前位置&…

简易深度学习(1)深入分析神经元及多层感知机

一、神经元 单个神经元结构其实可以认为是一个线性回归模型。例如下图中 该神经元输入为三个特征(x1,x2,x3),为了方便理解,大家可以认为每条线上都有一个权重和特征对应(w1,w2&…

麒麟系统安装MySQL

搞了一整天,终于搞定了,记录一下。 一、背景 项目的原因,基于JeecgBoot开发的系统需要国产化支持,这就需要在电脑上安装MySQL等支撑软件。 国产化项目的操作系统多是麒麟系统,我的系统如下: arm64架构。…

ISSCC论文详解2024 34.2——双端口设计实现高面积利用的浮点/整数存算

本文将要介绍的文献主题为浮点存内计算,题目为《A 16nm 96Kb Integer/Floating-Point Dual-Mode-Gain-CellComputing-in-Memory Macro Achieving 73.3-163.3TOPS/W and 33.2-91.2TFLOPS/W for AI-Edge Devices》,下面本文将从文章基本信息与背景知识、创…

5.9k!一款清新好用的后台管理系统!【送源码】

今天给大家分享的开源项目是一个优雅清新后台管理系统——Soybean Admin。 简介 官方是这样介绍这个项目的: Soybean Admin 使用的是Vue3作为前端框架,TypeScript作为开发语言,同时还整合了NaiveUI组件库,使得系统具有高可用性和…

分页处理封装+分页查询题目列表

文章目录 1.sun-club-common封装分页1.com/sunxiansheng/subject/common/eneity/PageInfo.java2.com/sunxiansheng/subject/common/eneity/PageResult.java 2.sun-club-application-controller1.SubjectInfoDTO.java 继承PageInfo并新增字段2.SubjectController.java 3.sun-clu…

信息学奥赛初赛天天练-37-CSP-J2021阅读程序-质数、合数、约数、约数个数、约数和、增加质因数对约数个数、约数和的影响

PDF文档公众号回复关键字:20240627 质数 质数和合数是数学中对于自然数(不包括0和1)的两种重要分类 质数 (Prime Number) 一个大于1的自然数,除了1和它本身以外不再有其他因数的数称为质数 例如 2、3、5、7、11、13、17、19等都是质数 …

从RLHF到DPO再到TDPO,大模型对齐算法已经是「token-level」

在人工智能领域的发展过程中,对大语言模型(LLM)的控制与指导始终是核心挑战之一,旨在确保这些模型既强大又安全地服务于人类社会。早期的努力集中于通过人类反馈的强化学习方法(RLHF)来管理这些模型&#x…

【深度学习】python之人工智能应用篇--跨模态生成技术

跨模态生成技术概述 跨模态生成技术是一种将不同模态的数据(如文本、图像、音频、视频等)进行融合和转换的技术。其目标是通过将一个模态的数据作为输入,生成与之对应的另一个模态的输出。这种技术对于突破单一模态的局限性,提高…

数据库怎么同步

数据库要怎么同步呢,有很多方法,看你用什么数据库,如果是Sqlserver,你要数据库同步,那么可以使用自带的订阅发布,订阅发布应该是不错的方法,但是我上次要配置双向同步,它的对等发布好像没部署成…

力扣-和为K的子数组

题目-和为 K 的子数组 解法1&#xff1a;两层for循环 public class T560 {public static int subarraySum(int[] nums, int k) {int res 0;for (int i 0; i < nums.length; i) {int tempSum 0;for (int j i; j < nums.length; j) {tempSum nums[j];if (tempSum k)…

JetBrains IDEA 2024 无线重置免费 试用

注意&#xff1a;该文档只作为参考&#xff0c;若涉及到版权问题&#xff0c;请官方购买正版软件 Idea的使用&#xff0c;不是免费的。需要自己购买&#xff0c;获取证书才能使用&#xff0c;那么怎么无限试用30天呢&#xff1f; 免费试用操作&#xff1a; 文件删除 删除C:\…

揭秘数据合并的秘密:一文掌握一对一、多对一、多对多合并技巧与实战!

使用pd.merge()合并 类似 MySQL 中表和表直接的合并merge与concat的区别在于,merge需要依据某一共同的行或列来进行合并使用pd.merge()合并时,会自动根据两者相同column名称的那一列,作为key来进行合并每一列元素的顺序不要求一致1. 一对一合并 df1 = pd.DataFrame({"…

软考系统架构师系统工程与信息系统基础考点

软考系统架构师系统工程与信息系统基础考点 系统工程 定义&#xff1a;一种组织管理技术&#xff0c;一种现代的科学决策方法 目的&#xff1a;以最好的方式实现系统 目标&#xff1a;整体最优 意义&#xff1a;利用计算机为工具&#xff0c;对系统的结构、元素、信息和反馈…

2024黑盾杯复现赛题MISC部分

一、一个logo 一张png图片&#xff0c;查看颜色通道即可发现flag 二、 学会Office 最好用联想自带的excel工具查看&#xff0c;我用WPS打开未解出题目 这里会发现有隐藏信息 隐藏信息为宏加密 。去百度了解宏加密后&#xff0c;发现有俩个宏&#xff0c;一个加密一个解密 执…

LeetCode刷题之HOT100之课程表

吃完普通的食堂饭菜&#xff0c;回到实验室&#xff0c;继续做一道题&#xff01; 1、题目描述 2、逻辑分析 这道题涉及到图相关知识&#xff0c;应用到了拓扑排序。 题意解释 一共有 n 门课要上&#xff0c;编号为 0 ~ n-1。先决条件 [1, 0]&#xff0c;意思是必须先上课 0…

不止是只有维度建模,数据仓库还有Data Vault建模

引言 在数据仓库设计中&#xff0c;传统的星型和雪花型模型有着各自的优势和劣势。随着数据量的增大和数据源的多样化&#xff0c;Data Vault&#xff08;数据仓库&#xff09;建模方法逐渐受到关注和应用。Data Vault建模是一种灵活、可扩展、适应性强的建模方法&#xff0c;…

flash申请内存失败,导致老化问题解决

背景 在闪光灯初始化阶段客制化了一个buffer&#xff0c;下发到kernel的闪光灯驱动中用于保存读取闪光灯寄存器的值。功能测试都是正常的&#xff0c;但是一旦开始批量跑产线老化测试会有1/4500左右概率的后主摄拍照卡住。定位根因是闪光灯初始化失败&#xff0c;进一步原因就…

记一次ndk版本升级

概述 事情的起因是做一次android版本的业务迭代&#xff0c;发现程序crash掉了。经过分析&#xff0c;原因是中台部门对libc_shared.so库进行了升级&#xff0c;正好我们的业务也会用到libc_shared.so库&#xff0c;导致两个库版本冲突。具体crash的原因可以参见参考文献1。 …

Coldrage Dagger

剃刀高地【寒怒匕首 Coldrage Dagger】 2020.11.26.剃刀高地刷【寒怒匕首】-1_网络游戏热门视频 2020.11.26.剃刀高地刷【寒怒匕首】-2_网络游戏热门视频