数据结构-5.4.二叉树的性质

news2024/12/29 10:18:40

一.二叉树的常考性质:

常见考点1:结点个数的性质

设非空二叉树(度最大为2,最小为0)当中度为0的结点个数为a,度为1的结点个数为b,度为2的结点个数为c,那么a=b+c:

推导过程:设该非空二叉树共有n个结点,那么n=a+b+c,

由树的结点数=总度数+1,n = ( 0 * a + 1 * b + 2 * c ) + 1 = b+2c+1

所以a = c +1

常见考点2:树的每层中的结点个数范围

常见考点3:树中结点最多可以有多少个


二.完全二叉树的常考性质:

常见考点1:已知结点个数,求完全二叉树的高度

法一:

上述图片中高度为h的完全二叉树的结点有n个,完全二叉树可由满二叉树推出来,

高度为h的满二叉树的结点有2的h的幂减1个,

高度为h-1的满二叉树的结点有2的(h-1)的幂减1个,

由于该完全二叉树的高度为h,所以它的结点数是一定大于高度为h-1的满二叉树的结点数,不能取等,取等的话完全二叉树的高度就只能是h-1,因为高度为h-1的满二叉树的结点已经满了,要想等于该h-1的满二叉树的结点数,该完全二叉树的高度只能为h-1,由于完全二叉树可由满二叉树推出来,所以高度为h的完全二叉树的结点数是小于或等于高度为h的满二叉树的结点数,可以取等,因为满二叉树是特殊的完全二叉树且高度都为h。

(上述图片里是向上取整得出h的结果)

法二:

思路:首先要保证完全二叉树的高度为h,那么第h-1层就一定排满了(因为完全二叉树最多只能有一个度为1的结点,达到完全二叉树的结点最少时且高度为h,那么就只能在第h层放一个结点,此时第h-1层就必须排满,如果把这一个结点放到第h层以外,编号就会与满二叉树不符),再多一个就能排到第h层了,其次,当h层全部排满时,就不能再添加结点了,否则就排到第h+1层了

(上述图片里是向下取整得出h的结果)

常见考点2:对于完全二叉树,可以由总结点数n推出度分别为0,1,2的结点个数为a,b,c

推导过程:在完全二叉树中,n=a+b+c,

由树的结点数=总度数+1,n = ( 0 * a + 1 * b + 2 * c ) + 1 = b+2c+1

所以a = c +1 -> a+c = 2c+1 ,所以度为0的结点(叶子结点)总数和度为2的结点总数的和为奇数

完全二叉树最多只能有一个度为1的结点,所以b只能为1(奇数)或者0(偶数)

因此,如果设n=2k为偶数,那么b只能为1,a为k,那么c为k-1

如果设n=2k-1为奇数,那么b只能为0,a为k,那么c为k-1


三.总结:


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

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

相关文章

Go基础知识:切片

数组 Go 数组的大小是固定的,其长度是其类型的一部分([4]int并且[5]int是不同的、不兼容的类型) var a [10]intb : [2]string{"Penn", "Teller"} b : [...]string{"Penn", "Teller"}package maini…

计算机专业大一课程:线性代数探秘

计算机专业大一课程:线性代数探秘 对于计算机专业的大一新生来说,线性代数是一门基础且重要的课程。它不仅是数学的一个分支,更是计算机科学中不可或缺的工具。那么,线性代数究竟包含哪些内容,对我们的计算机学习有何…

操作系统(1) (进程属性/内存映像/进程状态/PCB/上下文切换)

目录 1. 进程及其实现 2. 没有进程概念之前的系统 3. 进程的属性 4. 进程的内存映像 5. 进程状态及其转换 6. 进程描述与操作控制结构 操作控制结构: 操作系统使用数据结构来记录进程和系统资源的状态: 进程控制块(PCB)&a…

libmodbus编程应用(超详细源码讲解)

目录 前言 libmodbus开发库 1.功能概要 2.源码获取 3.libmodbus与应用程序的关系 libmodbus源代码解析 1.核心函数 2.框架分析与数据结构 3.情景分析 (1)初始化 (2)主设备发送请求 (3)主/从设备…

【Adobe PR】Adobe Premiere Pro 快捷键介绍

Adobe Premiere Pro (简称PR) 是一款广泛使用的视频编辑软件,熟练掌握其快捷键可以显著提高编辑效率。下面是整理的一些常用的Adobe Premiere Pro快捷键,适用于Windows和Mac操作系统。对于Mac用户,除非特别指出,通常可以将Ctrl键替…

视频画面变糊是平台在做手脚吗?

人气视频博主“影视飓风”一条新发布的视频被全网下架,这两日更是引起轩然大波,不仅频上热门,甚至还有不少数码与视频同行为其抱不平。那么影视飓风到底发布了一条什么视频?又为何会惨被全网下架呢? 10月8日&#xff0…

Android Studio Ladybug使用经典主题UI

背景 Android Studio Ladybug | 2024.2.1 默认使用new ui,但是已经找不到之前经典主题了。 通过插件方式设置经典主题 打开设置。Plugins。 在Marketplace中搜索:Classic UI 下面的截图是我已经安装完成的。 插件安装完成了,重启as即可。…

闭着眼学机器学习——K近邻分类

引言: 在正文开始之前,首先给大家介绍一个不错的人工智能学习教程:https://www.captainbed.cn/bbs。其中包含了机器学习、深度学习、强化学习等系列教程,感兴趣的读者可以自行查阅。 1. 算法介绍 K近邻(K-Nearest Neighbors, KNN…

ScriptableObject基本使用

使用方法 自定义类继承ScriptableObject 可以在类内部增加数据或者数据类,一般用于配置 注意事项 给继承ScriptableObject的类增加CreateAssetMenu特性。 CreateAssetMenu一般默认三个参数 第一个参数是父目录 第二个参数是父目录的子选项 第三个参数是可以…

虚幻闪烁灯光材质

创建一个材质 材质域改成光照函数 , Time让材质动起来 参数B用来控制速度 , Sine 让灯光闪烁 , Frac 增加了闪烁细节 把材质放到灯光材质上 效果还是挺不错的! 可以用于一些恐怖游戏~

FileZilla的简单使用

FileZilla的下载与安装以及简单使用(有图解超简单)-CSDN博客 参考这篇文章。 我在Window下安装了客户端,在虚拟机下启动Ubuntu,启用了Ubuntu的FTP服务。 按照该文章的流程进行下去,成功的把客户端上的文件上传到了F…

STM32学习--6-1 定时器定时中断

定时器电路图 第一步:RCC开启时钟,基本上每个代码都是第一步 第二步:选择时基单元的时钟源(内部时钟) 第三步:配置时基单元,包括预分频器、自动重装器、计数模式等,通过结构体配置…

Dockerfile(Jenkins)

1.创建⼀个jenkins的Dockerfile mkdir tomcat cd tomcat 2、上传需要的安装包 apache-tomcat-8.5.47.tar.gz jdk-8u211-linux-x64.tar.gz jenkins.war 3、编写Dockerfile vim Dockerfile # This my first jenkins Dockerfile # Version 1.0 FROM centos:7 MAINTAINER l…

Echarts+vue3+高德渲染地图

Echartsvue3高德渲染地图 一&#xff1a;安装 npm install echarts二&#xff1a;渲染地图 1. html <template><div class"content"><div ref"myChartsRef" id"map" style"width: 100%;height: 560px;" ></d…

JAVA自动化测试TestNG框架

1.TestNG简介 JAVA自动化测试最重要的基石。官网&#xff1a;https://testng.org 使用注解来管理我们的测试用例。 发现测试用例 执行测试用例 判断测试用例 生成测试报告 2.创建Maven工程 2.1创建一个maven工程 2.2设置maven信息 2.3设置JDK信息 2.4引入testng依赖 <dep…

Linux下Docker方式Jenkins安装和配置

一、下载&安装 Jenkins官方Docker仓库地址&#xff1a;https://hub.docker.com/r/jenkins/jenkins 从官网上可以看到&#xff0c;当前最新的稳定版本是 jenkins/jenkins:lts-jdk17。建议下在新的&#xff0c;后面依赖下不来 所以&#xff0c;我们这里&#xff0c;执行doc…

达梦数据库性能优化

1、SQL执行计划 拿到一条SQL的时候&#xff0c;首先要下达梦手册中提出的有效SQL规范&#xff0c;及是否命中了特殊OR子句的不规范&#xff0c;是否用了复杂的正则表达式&#xff0c;避免重复很高的索引&#xff0c;UINON ALL 是否可以替换UNION操作等,某些场景INSTR函数导致的…

FunASR离线文件转写服务开发指南-debian-10.13

FunASR离线文件转写服务开发指南-debian-10.13 服务器环境 debian10.13 64位 第一步 配置静态网卡 auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 8.8.8.8 8.8.4.4/etc/init.d/networking restart第…

C++面试速通宝典——25

473. HTTP如何减少重定向请求 重定向请求&#xff1a; ‌‌‌‌  服务器上的一个资源可能由于迁移、维护等原因从url1移至url2后&#xff0c;而客户端不知情&#xff0c;他还是继续请求url1&#xff0c;这时服务器不能粗暴地返回错误&#xff0c;而是通过302响应码和Locati…

甲方安全和乙方安全的区别

信息安全工作&#xff0c;总会被人分成甲方和乙方&#xff0c;甲乙方原本只是商务层面需方和供方的代称&#xff0c;在安全领域&#xff0c;成了做公司内部安全和为客户提供安全的区别。 通常意义上&#xff0c;什么是甲方安全人员呢&#xff1f;就是在非安全业务的公司从事信…