数据结构复习指导之树的基本概念

news2024/9/23 11:15:36

文章目录

树与二叉树

考纲内容

复习提示

前言

1.树的基本概念

1.1树的定义

1.2基本术语

1.3树的性质


树与二叉树

考纲内容

(一)树的基本概念
(二)二叉树
           二叉树的定义及其主要特征;二叉树的顺序存储结构和链式存储结构;
           二叉树的遍历;线索二叉树的基本概念和构造
(三)树、森林
           树的存储结构;森林与二叉树的转换;树和森林的遍历
(四)树与二叉树的应用
           哈夫曼(Huffman)树和哈夫曼编码;并查集及其应用

复习提示

本章内容多以选择题或综合题的形式考查,但统考也会出涉及树遍历相关的算法题。树和二叉树的性质、遍历操作、转换、存储结构和操作特性等,满二叉树、完全二叉树、线索二叉树、哈夫曼树的定义和性质,都是选择题必然会涉及的内容。

前言

本章内容比较重要,为避免大家在学习的过程中出现问题,事先声明:本章内容主要参考用书是清华大学严蔚敏教授的书籍《数据结构》;不同版本的参考书关于本章的内容可能会有所不同(尤其是关于树的深度、高度、层次问题),所以学习的时候最好是依据自己的参考书版本;避免误导;

1.树的基本概念

1.1树的定义

树是n(n≥0)个结点的有限集。当n=0时,称为空树。在任意一棵非空树中应满足:

1)有且仅有一个特定的称为的结点。

2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2,…,Tm,其中每个集合本身又是一棵树,并且称为根的子树。显然,树的定义是递归的,即在树的定义中又用到了其自身,树是一种递归的数据结构。

树作为一种逻辑结构,同时也是一种分层结构,具有以下两个特点:

1)树的根结点没有前驱,除根结点外的所有结点有且只有一个前驱。

2)树中所有结点都可以有零个或多个后继。

树适用于表示具有层次结构的数据。树中的某个结点(除根结点外)最多只和上一层的一个结点(即其父结点)有直接关系,根结点没有直接上层结点,因此在n个结点的树中有n-1条边。而树中每个结点与其下一层的零个或多个结点(即其孩子结点)都有直接关系。

1.2基本术语

下面结合图5.1中的树来说明一些基本术语和概念

1)祖先、子孙、双亲、孩子、兄弟和堂兄弟。
祖先:考虑结点K,从根A到结点K的唯一路径上的所有其他结点,称为结点K的祖先。

子孙:如结点B是结点K的祖先,而K是B的子孙,结点B的子孙包括EFK.L。

双亲:路径上最接近结点K的结点E称为K的双亲,而K为E的孩子。根A是树中唯一没有双亲的结点。

兄弟:有相同双亲的结点称为兄弟,如结点K和结点L有相同的双亲E,即K和L为兄弟。

堂兄弟:双亲在同一层的结点互为堂兄弟,结点G与E,E,H,I,J互为堂兄弟。

2)结点的度和树的度。
树中一个结点的孩子个数称为该结点的度,树中结点的最大度数称为树的度。如结点B的度为 2,结点D的度为3,树的度为3。

3)分支结点和叶结点。
度大于0的结点称为分支结点(又称非终端结点);度为0(没有孩子结点)的结点称为叶结点(又称终端结点)。在分支结点中,每个结点的分支数就是该结点的度。

4)结点的深度、高度和层次。
结点的层次:从树根开始定义,根结点为第1层,它的孩子为第2层,以此类推。

结点的深度:就是结点所在的层次。

树的高度(或深度):是树中结点的最大层数。图5.1中树的高度为4

结点的高度:是以该结点为根的子树的高度。

5)有序树和无序树。
树中结点的各子树从左到右是有次序的,不能互换,称该树为有序树,否则称为无序树。

假设图 5.1为有序树,若将子结点位置互换,则变成一棵不同的树。

6)路径和路径长度。
树中两个结点之间的路径是由这两个结点之间所经过的结点序列构成的,而路径长度是路径上所经过的边的个数

注意:因为树中的分支是有向的,即从双亲指向孩子,所以树中的路径是从上向下的,同一双亲的两个孩子之间不存在路径。

7)森林

命题追踪——森林中树的数量、边数和结点数的关系

森林是 m(m≥0)棵互不相交的树的集合。森林的概念与树的概念十分相近,因为只要把树的根结点删去就成了森林。反之,只要给m棵独立的树加上一个结点,并把这 m棵树作为该结点的子树,则森林就变成了树。

注意:上述概念无须刻意记忆,根据实例理解即可。考研时不大可能直接考查概念,而都是结合具体的题目考查。做题时,遇到不熟悉的概念可以翻书,练习得多自然就记住了。

1.3树的性质

树具有如下最基本的性质:

命题追踪——树中结点数和度数的关系的应用

1)树的结点数n等于所有结点的度数之和加1。
结点的度是指该结点的孩子数量,每个结点与其每个孩子都由唯一的边相连,因此树中所有结点的度数之和等于树中的边数之和。

树中的结点(除根外)都有唯一的双亲,因此结点数 n等于边数之和加1,即所有结点的度数之和加1。

2)度为m的树中第i层上至多有m^{i-1} 个结点(i => 1)。
第1层至多有1个结点(即根结点),第2层至多有m个结点,第3层至多有㎡个结点,以此类推。使用数学归纳法可推出第i层至多有m^{i-1}个结点。

3)高度为h的 m 叉树至多有(m^{h}-1) / (m-1)个结点。
当各层结点数达到最大时,树中至多有1+m+m^{2}+...+m^{h-1}=(m^{h}-1)/(m-1)个结点。

命题追踪——指定结点数的三叉树的最小高度分析

4)度为 m、具有n个结点的树的最小高度h为log_{m}(n(m-1)+1)
为使树的高度最小,在前 h-1 层中,每层的结点数都要达到最大,前 h-1 层最多有(m^{h-1}-1) / (m-1)个结点,前h层最多有(m^{h}-1) / (m-1)个结点。因此(m^{h-1}-1) / (m-1)<n\leqslant (m^{h}-1) / (m-1),即 h-1<log_{m}(n(m-1)+1)\leqslant h,

解得 h_{min}=\left \lceil log_{m}(n(m-1)+1) \right \rceil

5)度为 m、具有n个结点的树的最大高度h为n-m+1
由于树的度为 m,因此至少有一个结点有 m个孩子,它们处于同一层。为使树的高度最大,其他层可仅有一个结点,因此最大高度(层数)为n-m+1。由此,也可逆推出高度为 h、度为m的树至少有 h+m-1 个结点。

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

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

相关文章

22 Debian如何配置Apache2(2)虚拟主机

作者&#xff1a;网络傅老师 特别提示&#xff1a;未经作者允许&#xff0c;不得转载任何内容。违者必究&#xff01; Debian如何配置Apache2&#xff08;2&#xff09;虚拟主机 《傅老师Debian小知识库系列之22》——原创 前言 傅老师Debian小知识库特点&#xff1a; 1、最…

文件加密软件排行榜前四名(2024年4大好用的加密软件推荐)

说到文件加密&#xff0c;想必大家都很熟悉&#xff0c;文件加密已经普遍应用&#xff0c;文件加密是一种重要的安全措施&#xff0c;可以确保数据的机密性、完整性和可用性&#xff0c;降低因数据泄露或丢失带来的风险 。 下面小编给大家分享几款常用的加密软件&#xff0c;…

【redis】Redis数据类型(五)ZSet类型

目录 类型介绍特点补充 使用场景 Zset类型数据结构ziplist&#xff1a;压缩列表&#xff08;参考之前的文章&#xff09;skiplist&#xff1a;跳表解析 面试题&#xff1a;MySQL索引为什么用B树而不用跳表区别总结 常用命令ZADD示例 ZREM示例 ZCARD示例 ZCOUNT示例 ZSCORE示例 …

spring高级篇(九)

boot的执行流程分为构造SpringApplication对象、调用run方法两部分 1、Spring Boot 执行流程-构造 通常我们会在SpringBoot的主启动类中写以下的代码&#xff1a; 参数一是当前类的字节码&#xff0c;参数二是main的args参数。 public class StartApplication {public static…

【微信小程序开发】微信小程序注册,配置开发者工具

准备工作 微信小程序小程序开发流程 开发过程注册小程序开发者工具开发界面介绍 微信小程序 一种新的开发能力&#xff0c;可以在微信内被便捷的获取和传播&#xff0c;具有出色的用户体验 地址&#xff1a;https://mp.weixin.qq.com/ 注册微信小程序 在进行开发之前我们应该…

从开发角度理解漏洞成因(02)

文章目录 文件上传类需求文件上传漏洞 文件下载类需求文件下载漏洞 扩展 留言板类&#xff08;XSS漏洞&#xff09;需求XSS漏洞 登录类需求cookie伪造漏洞万能密码登录 持续更新中… 文章中代码资源已上传资源&#xff0c;如需要打包好的请点击PHP开发漏洞环境&#xff08;SQL注…

如何使用高德地图的 Loca 展示 gpx 文件的 3D 路径,Loca.LineLayer

如何使用高德地图的 Loca 展示 gpx 文件的 3D 路径&#xff0c;Loca.LineLayer 找寻了好久&#xff0c;终于将这个展示 3D 路径的功能实现了。 在线实例&#xff1a; http://kylebing.cn/tools/map/#/gpx/gpx-viewer-3d 这里是用于展示 gpx 路径&#xff0c;关于 gpx 的相关知…

Voice Conversion、DreamScene、X-SLAM、Panoptic-SLAM、DiffMap、TinySeg

本文首发于公众号&#xff1a;机器感知 Voice Conversion、DreamScene、X-SLAM、Panoptic-SLAM、DiffMap、TinySeg Converting Anyones Voice: End-to-End Expressive Voice Conversion with a Conditional Diffusion Model Expressive voice conversion (VC) conducts speak…

速卖通自养号测评海外环境:成本、步骤、技巧全掌握

相信不少涉足跨境业务的企业和商家都对速卖通耳熟能详。作为当下炙手可热的跨境电商平台&#xff0c;速卖通在国内电商市场渐趋饱和的背景下&#xff0c;吸引了众多国内卖家的目光。他们纷纷入驻速卖通&#xff0c;希望借助这一平台的力量&#xff0c;成功打通跨境业务渠道。然…

腾讯会议崩溃解决

突然腾讯会议就罢工了,腾讯会议的主界面可以登陆上去,不会异常退出: 这时无论是通过别人提供的会议号“加入会议” 还是 “快速会议”,都会出现下面的异常,并崩溃退出: 在网上搜“SteinwayMSVCRT”导致的腾讯会议的错误,会告诉你使用金山毒霸的XX医生解决,下载了金山毒…

新代数控Syntec网络IP配置设定教程

点击面板【维护】→【网络设定】→【IP地址取得方法&#xff1a;直接指定IP地址】→【IP地址&#xff1a;输入采集需要设定的IP】→【子网掩码&#xff1a;255.255.255.0】→【预设网关】 输入方法&#xff1a;点击面板上的【ENTER】输入键&#xff0c;输入相关参数即可。

git使用注意事项事项

以下操作均在gitee平台上实现 文章目录 1、本地仓库和远程仓库有冲突2、git提交自动忽略某些文件3、git无法push提交到远程仓库 1、本地仓库和远程仓库有冲突 在web端修改了文件内容或者删除了文件&#xff0c;本地仓库需要重新把远程仓库拉取到本地&#xff0c;或者强制提交到…

Mars3d实现用一个button控制一个map.control的显示与隐藏

原生js,想做一个button,控制比如compass的显示与隐藏 点一下显示 再次单击的时候就隐藏掉 写了一个function控制显示隐藏 function addCompass(){ if(compass.showtrue) { compass.showfalse; } else{ compass.showtrue; } } 功能示例(Vue版) | Mars3D三维可视化平台 | 火星…

面试中算法(无序数组排序后最大相邻差)

有一个无序整型数组&#xff0c;求该数组排序后的任意两个相邻元素的最大差值&#xff1b;要求时间复杂度和空间复杂度尽可能低。 &#xff08;1&#xff09;任意一种时间复杂度为O (nlogn&#xff09;的排序算法&#xff08;如快速排序&#xff09;给原数组排序&#xff0c;然…

知识库工具:付费的HelpLook AI知识库比免费的牵牛易帮好在哪里

在知识管理的领域中&#xff0c;选择合适的知识库工具对于企业来说很重要。市面上有很多知识库产品&#xff0c;有付费的和免费的&#xff0c;但是还是有很多企业会选择使用付费的&#xff0c;而不是免费的。这是为什么呢&#xff1f;这就是今天要探讨的问题&#xff0c;下面就…

机器学习(二) ----------K近邻算法(KNN)+特征预处理+交叉验证网格搜索

目录 1 核心思想 1.1样本相似性 1.2欧氏距离&#xff08;Euclidean Distance&#xff09; 1.3其他距离 1.3.1 曼哈顿距离&#xff08;Manhattan Distance&#xff09; 1.3.2 切比雪夫距离&#xff08;Chebyshev distance&#xff09; 1.3.3 闵式距离&#xff08;也称为闵…

1.4 初探JdbcTemplate操作

实战目的 掌握Spring框架中JdbcTemplate的使用&#xff0c;实现对数据库的基本操作。理解数据库连接池的工作原理及其在实际开发中的重要性。通过实际操作&#xff0c;加深对Spring框架中ORM&#xff08;对象关系映射&#xff09;的理解。 关键技术点 JdbcTemplate操作&…

AI人才争夺战,华尔街入局:豪掷百万美元年薪抢人 | 最新快讯

量子位公众号 QbitAI 继硅谷之后&#xff0c;华尔街也入局“AI 人才争夺大战”。 他们的目标非常明确——抢的就是高精尖的 AI 专家。 △图源&#xff1a;Business Insider 现在这条“街”上&#xff0c;不论是银行、对冲基金还是私募股权公司都已纷纷下场&#xff0c;可谓是豪…

Netty进阶-协议设计与解析

Netty进阶 一、黏包半包的深入理解&#xff08;本质原因&#xff1a;TCP是流式协议&#xff0c;消息无边界&#xff09;1、TCP滑动窗口2、协议设计与解析2.1、Redis协议2.2、HTTP协议2.3、自定义协议2.3.1、自定义协议要求2.3.2、自定义消息对象&#xff08;编解码器、消息抽象…

谷歌明年6月关闭 Google Fit 运动记录API,要求开发者迁移至Android Health平台 | 最新快讯

5 月 6 日消息&#xff0c;谷歌近日发布官方新闻稿&#xff0c;宣布将在明年 6 月使用 Android Health 平台取代 Google Fit 运动记录 API&#xff0c;开发人员应当尽早启动迁移计划。 谷歌自 2022 年起逐渐扩大对 Android Health 平台的投资&#xff0c;旨在减少平台碎片化&am…