【数据结构】树与二叉树(三):二叉树的定义、特点、性质及相关证明

5.1 树的基本概念

5.1.1 树的定义

  • 一棵树是结点的有限集合T:
    • 若T非空,则:
      • 有一个特别标出的结点,称作该树的,记为root(T);
      • 其余结点分成若干个不相交的非空集合T1, T2, …, Tm (m>0),其中T1, T2, …, Tm又都是树,称作root(T)的子树
    • T 空时为空树,记作root(T)=NULL。

5.1.2 森林的定义

  一个森林是0棵或多棵不相交(非空)树的集合,通常是一个有序的集合。换句话说,森林由多个树组成,这些树之间没有交集,且可以按照一定的次序排列。在森林中,每棵树都是独立的,具有根节点和子树,树与树之间没有直接的连接关系。
  森林是树的扩展概念,它是由多个树组成的集合。在计算机科学中,森林也被广泛应用于数据结构和算法设计中,特别是在图论和网络分析等领域。
在这里插入图片描述

5.1.3 树的术语

  • 父亲(parent)、儿子(child)、兄弟(sibling)、后裔(descendant)、祖先(ancestor)
  • 度(degree)、叶子节点(leaf node)、分支节点(internal node)
  • 结点的层数
  • 路径、路径长度、结点的深度、树的深度

参照前文:【数据结构】树与二叉树(一):树(森林)的基本概念:父亲、儿子、兄弟、后裔、祖先、度、叶子结点、分支结点、结点的层数、路径、路径长度、结点的深度、树的深度

5.1.4 树的表示

  • 【数据结构】树与二叉树(二):树的表示C语言:树形表示法、嵌套集合表示法、嵌套括号表示法 、凹入表示法

5.2 二叉树

5.2.1 二叉树

1. 定义

  二叉树是一种常见的树状数据结构,它由结点的有限集合组成。一个二叉树要么是空集,被称为空二叉树,要么由一个根结点和两棵不相交的子树组成,分别称为左子树右子树。每个结点最多有两个子结点,分别称为左子结点和右子结点。
在这里插入图片描述

2. 特点

  二叉树的特点是每个结点最多有两个子结点,并且子结点的位置是有序的,即左子结点在前,右子结点在后。这种有序性使得二叉树在搜索、排序等算法中有广泛的应用。

  • 在二叉树中,根结点是整个树的起始点,通过根结点可以访问到整个树的其他结点。每个结点都可以看作是一个独立的二叉树,它的左子树和右子树也是二叉树。

  • 二叉树可以是空树,也可以是只有根结点的树,或者是由多个结点组成的树。每个结点可以包含一个数据元素,以及指向左子结点和右子结点的指针。

  • 二叉树的形状可以各不相同,它可以是平衡的或者不平衡的,具体取决于结点的分布情况。在二叉树中,每个结点的左子树和右子树都是二叉树,因此可以通过递归的方式来处理二叉树的操作。

3. 性质

  • 引理5.1:二叉树中层数为i的结点至多有 2 i 2^i 2i个,其中 i ≥ 0 i \geq 0 i0

    • 这个引理表明,二叉树的每一层上的结点数量是指数级增长的。
  • 引理5.2:高度为k的二叉树中至多有 2 k + 1 − 1 2^{k+1}-1 2k+11个结点,其中 k ≥ 0 k \geq 0 k0

    • 这个引理说明了二叉树的高度与结点数量之间的关系,高度越大,结点数量也越多。
  • 引理5.3:设T是由n个结点构成的二叉树,其中叶结点个数为 n 0 n_0 n0,度数为2的结点个数为 n 2 n_2 n2,则有 n 0 = n 2 + 1 n_0 = n_2 + 1 n0=n2+1

    • 这个引理描述了二叉树中叶结点和度数为2的结点之间的关系,即叶结点的数量比度数为2的结点数量多1。
引理5.1:二叉树中层数为i的结点至多有 2 i 2^i 2i个,其中 i ≥ 0 i \geq 0 i0

在这里插入图片描述

  证明:使用数学归纳法。

基础步骤: i = 0 i=0 i=0 时,仅有一个根结点,其层数为0。因此,第0层上至多有 2 0 = 1 2^0=1 20=1 个结点。因此,当 i = 0 i=0 i=0 时,引理成立。

归纳假设: 假设当 i = j i=j i=j ( j ≥ 0 ) (j\geq0) (j0) 时,二叉树中第 j j j 层上至多有 2 j 2^j 2j 个结点。

归纳步骤: 考虑第 j + 1 j+1 j+1 层上的结点个数。对于任意一个结点,其子结点个数最多为2。根据归纳假设,第 j j j 层上至多有 2 j 2^j 2j 个结点。因此,第 j + 1 j+1 j+1 层上的结点个数最多为 2 × 2 j = 2 j + 1 2\times2^j=2^{j+1} 2×2j=2j+1 个结点。

  因此,根据数学归纳法,对于任意非负整数 i i i,二叉树中层数为 i i i 的结点至多有 2 i 2^i 2i 个。

证毕

引理5.2:高度为k的二叉树中至多有 2 k + 1 − 1 2^{k+1}-1 2k+11个结点,其中 k ≥ 0 k \geq 0 k0

  对于高度为k的二叉树,我们可以计算每一层的最大结点数,并将它们相加来得到总结点数的上界。根据引理5.1,第 i i i层上至多有 2 i 2^i 2i个结点。那么,第 0 0 0层至第 k k k层的结点数上界可以表示为:
2 0 + 2 1 + 2 2 + . . . + 2 k 2^0 + 2^1 + 2^2 + ... + 2^k 20+21+22+...+2k

  这是一个等比数列的和,可以使用等比数列求和公式进行计算。等比数列的求和公式为:

S = a ∗ ( r n − 1 ) / ( r − 1 ) S = a * (r^n - 1) / (r - 1) S=a(rn1)/(r1)

其中,S表示数列的和,a是首项,r是公比,n是项数。

  在我们的情况下,首项a=1,公比r=2,项数n=k+1。将这些值代入公式中,我们可以得到:

2 0 + 2 1 + 2 2 + . . . + 2 k = 1 ∗ ( 2 k + 1 − 1 ) / ( 2 − 1 ) = 2 k + 1 − 1 2^0 + 2^1 + 2^2 + ... + 2^k =1 * (2^{k+1} - 1) / (2 - 1) = 2^{k+1} - 1 20+21+22+...+2k=1(2k+11)/(21)=2k+11

因此,高度为k的二叉树中至多有2^(k+1) - 1个结点。

证毕

  • 问题1:高度为k (k≥1)的二叉树中至少有多少个结点?k+1
  • 问题2:含有k (k≥1)个结点的二叉树高度至多为多少? k-1
引理5.3:设T是由n个结点构成的二叉树,其中叶结点个数为 n 0 n_0 n0,度数为2的结点个数为 n 2 n_2 n2,则有 n 0 = n 2 + 1 n_0 = n_2 + 1 n0=n2+1

  设T是由 n n n个结点构成的二叉树,其中叶结点个数为 n 0 n_{0} n0,次数为2的结点个数为 n 2 n_{2} n2

  根据引理5.3的前提条件,我们有以下等式:

n = n 0 + n 1 + n 2        ( 5 − 1 ) n = n_{0} + n_{1} + n_{2}       (5-1) n=n0+n1+n2      (51)

其中, n 1 n_{1} n1是T中次数为1的结点个数。

  另一方面,设二叉树T的边的个数为 E E E。除了根结点外,每个结点和其父结点之间都有且仅有一条边,即一个结点对应一条边。因此,结点的个数 n n n比边的个数 E E E多1(根结点不对应边),即:

n = E + 1           ( 5 − 2 ) n = E + 1          (5-2) n=E+1         (52)

  另外,从另一个角度来看,次数为1的结点对应一条边,次数为2的结点对应两条边。因此,边的个数 E E E可以表示为:

E = n 1 + 2 n 2          ( 5 − 3 ) E = n_{1} + 2n_{2}        (5-3) E=n1+2n2        (53)

  我们将(5-1)、(5-2)和(5-3)联立起来,通过求解这个方程组,我们可以得到 n 0 = n 2 + 1 n_{0} = n_{2} + 1 n0=n2+1,即二叉树T中的叶结点个数 n 0 n_{0} n0为次数为2的结点个数 n 2 n_{2} n2加1。

证毕

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

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

相关文章

【机芯智能】智能公元(语音模块)

语音模块配置 进入语音模块智能公元官网,配置词条和识别后的串口输出指令. 记录下相关指令以及上图的识别词条,方便SDK烧写后的调试 SDK烧写 4. SDK 先和电脑调试助手配合,验证数据

web框架与Django

web应用程序 什么是web Web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件 应用程序有两种模式C/S、B/S。C/S是客户端/服务器端程序,也就是说这…

竞赛选题 深度学习疫情社交安全距离检测算法 - python opencv cnn

文章目录 0 前言1 课题背景2 实现效果3 相关技术3.1 YOLOV43.2 基于 DeepSort 算法的行人跟踪 4 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习疫情社交安全距离检测算法 ** 该项目较为新颖,适合作为竞赛…

11月11日|欢迎参加Sui Meetup泰国活动!

现在是Sui基金会与泰国Sui社区见面的时候啦,我们诚邀每个人参加今年最大的Sui Meetup泰国活动,主题是“Summer Paradise(夏日天堂)”。在活动中,您将会见到来自Sui基金会、ContributionDAO、KX、Inspex、Cryptomind、A…

企业单位SSL证书

对于企业网站来说,建立一个安全可信的在线环境至关重要。在该过程中,选择适合的SSL证书起着关键作用。SSL证书不仅可以加密敏感数据传输,还可以展示您的企业身份和信誉。本文将为您介绍几款适合企业网站使用的SSL证书,助您确保网站…

Spring Boot 统一处理功能

目录 1.用户登陆权限验证 1.1 每个方法验证 1.2 Spring AOP 用户统一登陆验证 1.3 拦截器 1.3.1 自定义拦截器 1.3.2 将自定义拦截器配置到系统设置中,并且设置拦截规则 1.3.3 排除所有的静态资源 1.4 登录拦截器(练习) 1.5 拦截器原…

MGEF 记录添加(物料主数据有一个存储区域的选项英文显示Haz. material number(危险物料号))

物料主数据有一个存储区域的选项英文显示Haz. material number(危险物料号)) 看了一下对应的时MGEF-STOFF 刚开始在后台配置里面加好了需要的项目发现物料主数据还是选不到 找了半天,查了一堆资料。没有找到MGEF 是在哪里增加配置…

Android 深色模式切换适配

在Android11上测试 1&#xff0c;把需要适配的资源文件复制一份后缀加上-night&#xff0c;里面就放置变主题后的资源 2&#xff0c;两个主题一个白&#xff0c;一个黑&#xff0c;分别放置在对应的valuse-styles.xml中 <style name"Theme.LaserMachPor" parent&…

如何导出PPT画的图为高清图片?插入到world后不压缩图像的设置方法?

期刊投稿的时候&#xff0c;需要图片保持一定的清晰度数&#xff0c;那么我们怎么才能从PPT中导出符合要求的图片呢&#xff1f; 对于矢量图绘图软件所画的图&#xff0c;直接导出即可。 而PPT导出的图片清晰度在60pi&#xff0c;就很模糊。 整体思路&#xff1a; PPT绘图——…

前端Vue 页面滑动监听 拿到滑动的坐标值

前言 前端Vue 页面滑动监听 拿到滑动的坐标值 实现 Vue2写法 mounted() {// 监听页面滚动事件window.addEventListener("scroll", this.scrolling);}, methods: { scrolling() {// 滚动条距文档顶部的距离let scrollTop window.pageYOffset ||document.documentE…

ZZ308 物联网应用与服务赛题第G套

2023年全国职业院校技能大赛 中职组 物联网应用与服务 任 务 书 &#xff08;G卷&#xff09; 赛位号&#xff1a;______________ 竞赛须知 一、注意事项 1.检查硬件设备、电脑设备是否正常。检查竞赛所需的各项设备、软件和竞赛材料等&#xff1b; 2.竞赛任务中所使用…

python-sys模块

1、sys.argv 2、 sys.path 3、sys.modules

RuoYi-Vue 在Swagger和Postman中 上传文件测试方案

RequestPart是Spring框架中用于处理multipart/form-data请求中单个部分的注解。在Spring MVC中&#xff0c;当处理文件上传或其他类型的多部分请求时&#xff0c;可以使用RequestPart注解将请求的特定部分绑定到方法参数上。 使用RequestPart注解时&#xff0c;需要指定要绑定…

TSINGSEE智能分析网关V4车辆结构化数据检测算法及车辆布控

车辆结构化视频AI检测技术&#xff0c;可通过AI识别对视频图像中划定区域内的出现的车辆进行检测、抓拍和识别&#xff0c;系统通过视频采集设备获取车辆特征信息&#xff0c;经过预处理之后&#xff0c;接入AI识别算法并与车辆底库进行对比&#xff0c;快速识别车辆身份和属性…

【hcie-cloud】【5】华为云Stack规划设计之华为云Stack标准化配置、缩略语【下】

文章目录 前言、华为云Stack交付综述为云Stack标准组网华为云Stack标准化配置华为云Stack配置概览华为云Stack云服务全视图华为云Stack部署方案节点类型说明华为云Stack云服务组件部署场景管理节点部署原则云平台管理规格华为云Stack IaaS场景&高阶场景起步必选部署组件x86…

MySQL系列-win10安装MySQL

MySQL系列-win10安装MySQL 1. MySQL系列-win10安装MySQL1.1MySQL下载安装MySQL5.71.2MySQL下载再安装MySQL8.0 未完待续 1. MySQL系列-win10安装MySQL 1.1MySQL下载安装MySQL5.7 下载地址 https://www.mysql.com/downloads/ 进入后&#xff0c;下拉页面&#xff0c;最下面有社…

接口测试工具

接口测试的重要性 接口测试&#xff1a; 直接对后端服务的测试&#xff0c;是服务端性能测试的基础&#xff0c;是测试工程师的必备技能。 接口测试的概念 接口&#xff1a;系统之间数据交互的通道 接口测试&#xff1a;校验接口响应数据与预期数据是否一致 接口信息解析 …

6-爬虫-scrapy解析数据(使用css选择器解析数据、xpath 解析数据)、 配置文件

1 scrapy解析数据 1.1 使用css选择器解析数据 1.2 xpath 解析数据 2 配置文件 3 整站爬取博客–》爬取详情–》数据传递 scrapy 爬虫框架补充 # 1 打码平台---》破解验证码-数字字母&#xff1a;ddddocr-计算题&#xff0c;滑块&#xff0c;成语。。。-云打码&#xff0c;超…

网络流量分类概述

1. 什么是网络流量&#xff1f; 一条网络流量是指在一段特定的时间间隔之内&#xff0c;通过网络中某一个观测点的所有具有相同五元组(源IP地址、目的IP地址、传输层协议、源端口和目的端口)的分组的集合。 比如(10.134.113.77&#xff0c;47.98.43.47&#xff0c;TLSv1.2&…

金豺算法优化VMD参数,六种适应度函数任意切换,最小包络熵、样本熵、信息熵、排列熵、排列熵/互信息熵、包络谱峰值因子...

声明&#xff1a;对于作者的原创代码&#xff0c;禁止转售倒卖&#xff0c;违者必究&#xff01; 本期采用金豺优化算法(Golden Jackal optimization, GJO)优化VMD参数。选取六种适应度函数进行优化&#xff0c;以此确定VMD的最佳k和α参数。6种适应度函数分别是&#xff1a;最…