王道考研数据结构第五章知识点

news2024/11/15 5:06:06

5.1.1 树的定义和基本术语

 祖先节点:(对于你来说),父亲和爷爷都是祖先节点

子孙节点:对于父亲来说,父亲下面所有的节点都叫子孙节点

双亲节点(父节点):一个节点的直接前驱就是它的父节点 

兄弟节点:例如二叔,三叔都是父亲的兄弟节点

堂兄弟节点:对于你来说,GHIJ节点就是堂兄弟节点

 

 5.1.2 树的性质

 理解:节点数=总度数+1,由于根节点头上是没有边的,所以节点数比总度数多一个。

助记:天线宝宝

 

5.2.1 二叉树的定义和基本术语

 

 完全二叉树相较于满二叉树只是去掉了编号较大的节点,并且去掉节点后编号保持不变。

注意:都是向下取整

5.2.2 二叉树的性质

 叶子节点的个数比度为2的节点个数多一个。

 

 

5.2.3 二叉树的存储结构

 

 若在非完全二叉树中,用顺序存储的方式就无法用图中方式来判断一个节点是否有左孩子和右孩子。只能够用结构体中的empty值来判断.

 二叉树的顺序存储结构只适合存储完全二叉树

 链式存储方式中n个节点,就会有2n个指针域,除了根节点以外,其他每一个节点的头上都会连有一个指针,即n-1个指针域,也就是说2n个指针域中会有n+1个指针域是指向null(空域)的

 

 5.3.1 二叉树的先中后序遍历

 由于B和C是分支节点而不是叶子节点,所以再对B和C节点分别递归进行相应的遍历.

 递归遍历算法的空间复杂度为O(h+1)

 

5.3.2 二叉树的层次遍历

 

 5.3.3 由遍历序列构造二叉树

 注意:一定要有中序序列才可以推出一颗二叉树的完整形态

 5.3.4 线索二叉树的概念

 注意:这里的前驱和后继是基于先序遍历的结果的前驱和后期。而此前的前驱和后继是基于节点。

 5.3.5 二叉树的线索化

 

 5.3.6 在线索二叉树中找前驱后继

 

 

 

 

 

 5.4.1 树的存储结构

 

 

 

 

 

 

 

 

 

 

 

 

 5.4.2 树和森林的遍历

 

 

 

 

 

 

 5.5.1 哈夫曼树

 

 

 n个节点会合并n-1次,每一次合并都会导致增加一个分支节点,因此哈夫曼树的节点总数是2n-1

 

 

 

 

 

 

 

5.5.2 并查集

 

 

 

 

 

 采用双亲表示法并和查的操作都是非常方便的

 

 

 

 

 

 

 

 

 

 5.5.3 并查集的进一步优化

 

 

 

 

 

 

 

 

 Union操作的时间复杂度都是用n个元素需要合并n-1次合并操作乘Find操作的时间复杂度得之

 

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

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

相关文章

MYSQL定义及操作

1、显示所有职工的基本信息 2、查询所有职工所属部门的部门号,不显示重复的部门号 3、求出所有职工的人数 4、列出最高工和最低工资 5、列出职工的平均工资和总工资 6、创建一个只有职工号、姓名和参加工作的新表,名为工作日期表 7、显示所有女职工的年龄…

jvm新生代调优

5-4 新生代调优 只有排除了自己代码的问题后,再进行内存调优,内存调优都是从新生代开始,因为新生代优化空间更大一些 新生代的特点 所有的new操作分配内存都是非常廉价的,非常快 TLAB:thread-local allocation buf…

go-zero微服务实战——服务构建

目录介绍 接上一节go-zero微服务实战——基本环境搭建。搭建好了微服务的基本环境,开始构建整个微服务体系了,将其他服务也搭建起来。 order的目录结构,如下 根目录 api服务rpc服务自定义逻辑层logic自定义参数层models自定义工具层util …

RAR Extractor Max - Unzip for Mac(简单易用的压缩软件)

RAR Extractor Max是一个软件应用程序,旨在从RAR档案中提取文件。RAR是一个流行的归档文件解压软件,广泛用于压缩和归档文件。RAR Extractor Max是专门为处理RAR文件而设计的,对于任何经常处理这种文件格式的人来说,这是一个有用的…

【运维工程师学习四】Web服务之Apache

【运维工程师学习四】Web服务之Apache 1、查询、安装apacherpm命令使用 2、验证httpd是否启动成功(1)、查看是否有httpd的进程(2)、查看是否有80端口在监听中(3)、CentOS7默认不带netstat命令,通…

自定义TagViewGroup

来看看如何实现最最基本的TagGroupView,该视图作为ViewGroup的作用是实现其中的子视图的自动换行,保证子视图能够按照在xml中传入的顺序来相对合理地显示到界面上。 注意:其实在Android技术已经非常完善的当下,其实我们已经不怎么…

【k8s】k8s的yaml文件解释,如何部署一个java.jar包

前言: k8s的yaml文件解释,如何部署一个java,jar包 YAML语法格式: 大小写敏感;使用缩进表示层级关系;不支持Tab键制表符缩进,只使用空格缩进;缩进的空格数目不重要,只要相同层级的元…

Imx6ull linux 设备树

一 linux设备树简介 1.1 linux设备树 Linux设备树是一种用于描述硬件设备信息的数据结构,它在Linux内核中发挥着越来越重要的作用 在系统上电后,BootLoader会将设备树传递给Linux内核,内核根据识别的树信息展开为platform_device、spi_dev…

如何用爬虫实现GPT功能

如何用爬虫实现GPT功能? GPT(Generative Pre-trained Transformer)和爬虫是两个完全不同的概念和技术。GPT是一种基于Transformer模型的自然语言处理模型,用于生成文本,而爬虫是一种用于从互联网上收集数据的技术。 …

贝叶斯 A/B 测试解释与Python实现

一、说明 A / B测试在各个行业中有许多应用。从试图确定最佳市场群体到医疗药物测试,它具有各种应用,并允许企业根据结果做出决策。有两种常见的A/B检验方法,频率主义方法和贝叶斯方法,两者都是从假设检验的基础出发的。在本文中&…

819. 递归求阶乘

链接: 819.递归求阶乘 题目: 请使用递归的方式求 nn 的阶乘。 输入格式 共一行,包含一个整数 nn。 输出格式 共一行,包含一个整数,表示 nn 的阶乘的值。 数据范围 1≤n≤101≤n≤10 输入样例: 3输出样例&am…

【Linux】查看系统各种信息的常用命令 (CPU、内存、进程、网口、磁盘、硬件、等等)

Linux是一种开源的类Unix操作系统,它有很多不同的发行版,如Ubuntu、CentOS、Debian等。Linux系统提供了很多命令行工具,可以让用户方便地查看和管理系统的各种信息,如硬件配置、内存使用、进程状态、网络连接等。本文将介绍一些常…

解决IDEA项目external libraries依赖包消失的问题

有时候电脑重启后,再打开IDEA上的项目时会出现external libraries目录下的依赖包都消失了的情况,只剩下了一个JDK的包 网上说可以通过刷新IDEA的缓存解决,但我试了没有效果,最后使用如下办法解决: 1.删除项目目录下的…

python接口自动化(二十五)--unittest断言——下(详解)

简介 本篇还是回归到我们最初始的话题,想必大家都忘记了,没关系看这里:传送门 没错最初的话题就是登录,由于博客园的登录机制改变了,本篇以我找到的开源免费的登录API为案例,结合 unittest 框架写 2 个用例…

MySQL原理探索——26 备库为什么会延迟好几个小时

在上一篇文章中,介绍了几种可能导致备库延迟的原因。你会发现,这些场景里,不论是偶发性的查询压力,还是备份,对备库延迟的影响一般是分钟级的,而且在备库恢复正常以后都能够追上来。 但是,如果备…

nvm的安装与使用5分钟极速上手

nvm的安装与使用5分钟极速上手 下载 nvm 并安装 nvm官网下载地址推荐下载 nvm-setup.zip 这一个,nvm-noinstall.zip下载之后不用安装,但是得自己配置setting.txt文件,以及环境变量,过于麻烦。nvm-setup.zip 会直接帮我们把环境变…

开篇(变量、运算符、进制)

一、Java简介 JDK(JRE(JVM & API)、Java language(tools & APIs));java源文件 → javac的编译 → class类(会生成一个或多个class文件); * 使用 jav…

什么是Qt Widgets?一组创建经典桌面应用UI的界面组件!

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。 Qt Widgets模块提供…

QGIS 根据点位批量出图

背景 在工作中,当有大量项目点位需要结合地图介绍时,则需要批量截图。于是有了今天的教程。 一 工具及材料准备 QGIS 插件 QuickMapServices 点位集合 CSV文件 其他图层文件 二 导入图层 这里根据实际需要导入自己对应格式的就好。 图层-添加…

计算机网络地址

1、ipv4地址 2、网络地址转换 3、子网划分和主机号