二叉树的性质的结点数与高度的计算题

news2024/11/25 6:52:47

二叉树是一种特殊的树形结构,每个结点最多只有两棵子树,即度最大为2,且二叉树左右子树不能颠倒。

主要常见分类有:

满二叉树:

除了叶子结点外,每个结点的度数都是2,若高度为h,则一定有2^h - 1个结点,树如其名,一定是装得满满的一棵树,同时这个公式也用来判断高度为h的二叉树最多的结点数。

完全二叉树:

它可以不满,但是完全二叉树的结点存放顺序一定要是从左开始依次放,不允许有些结点有右孩子但没有左孩子
叶子结点只有可能出现在最后一层和倒数第二层
若有度为1的结点,有且只能有一个,且该结点只有左孩子没有右孩子
若总结点数n是奇数,则每个分支结点都有左右孩子
若总结点数n是偶数,则最后一个分支结点(编号n/2)只有左孩子没有右孩子
在这里插入图片描述

常用公式:

(1)叶子结点数 = 度为2的结点数 + 1 ; n0 = n2 + 1
(2)二叉树第k层最多有 2^(k-1) 个结点
(3)高度为h的二叉树最多有2^h - 1个结点 (即满二叉树)
(4)有n个结点的完全二叉树的高度:log2(n+1) 向上取整 或者 log2n + 1 向下取整

题目通过是给出结点数求最大高度,最小高度,或者给出高度求最少多少结点,最多有多少结点(要看清楚题目给出的二叉树是普通二叉树,还是满二叉树还是完全二叉树是关键)

(1)假设一棵二叉树结点数为50,则它最小高度是:
注意该题目没说是完全二叉树,也就是说它结点是想怎么放就怎么放的。但是又因为要高度最小,只能按照满二叉树的形式去放才能保证高度最小
那么根据满二叉树的公式:log2(50+1) 向上取整,得到6

(2)一棵具有1025个结点的二叉树的高为:11~1025
注意该题目只是普通二叉树,所以它的高最大可以是1025,最小的话按照满二叉树放,log2(1025+1)向上取整 = 11层

(3)二叉树只有度为0和2的结点,结点总数15,则该二叉树的最大深度是:
注意题目是普通二叉树,规定只有度为0和2,那么就可以是一棵单边树,即只往左或者右延伸
在这里插入图片描述
按照这个规律推,第一行1个,第二行开始,每一层都是2个,那么总结点数就是 : 2*h - 1 = 15
解出 h = 8

(4)高度为h的完全二叉树最少有()个结点
注意是完全二叉树,高度为h,还要求最少的结点数,那么我们可以让h-1层是满的,h层只放一个敷衍了事
那么就是:2 ^(h-1) - 1(第h-1层的个数) + 1(第h层的1个) = 2 ^(h-1) 个

(5)已知一棵完全二叉树第六层有8个叶子结点,则完全二叉树的结点个数最少是:
完全二叉树第六层只有8个,要结点数最少,则前五层是满的:2 ^(5) - 1 = 31
第六层只有8个,则 31 + 8 = 39

(6)若一棵深度为6的完全二叉树的第六层有3个叶子结点,则该二叉树共有 () 个叶子结点
因为完全二叉树只有六层,第六层不满,前五层满,根据公式,第五层有 2^5-1 = 16个结点,又因为第六层有3个叶子,3个叶子结点会占用第五层2个结点,所以第五层的叶子结点数: 16 - 2 = 14
总叶子结点数:14 + 3 = 17

(7)一棵完全二叉树上有1001个结点,其中叶子结点的个数是:
直接求非叶子结点的最大编号是 : 1001/2 向下取整 = 500
叶子结点= 总结点 - 非叶子结点 = 1001 - 500 = 501

(8)若一棵二叉树有126个结点,在第七层至多有(63)个结点
思路一:
要第七层结点最多,则第六层必须满,这样第六层的父辈才能往下生长结点,那么照推第五层也必须满…
若前六层满,则 共有 2^6 - 1 = 63 个
那么剩下给第七层的就只有 : 126 - 63 = 63

思路二:
若是满七层,共需要:2^7 - 1 = 127个结点
可是题目说只有126个,那么少的那一个只可能少在第七层
第七层如果是满的话,应该是: 2^h-1 = 64 个
现在少了一个,所以只有:63个

(9)一棵有124个叶子结点的完全二叉树,最多有()个结点
总结点数为 n
则 n = n0 + n1 + n2
又因为公式有 n0 = n2 + 1
n2 = n0 - 1
所以 n = n0 + n1 + n0 -1 = 2n0 - 1 + n1
得到总数n = 2*124 -1 + n1
这个时候,度为1的结点数要么有一个要么0个,因为它是完全二叉树啊!不可能有两个度为1的结点。
那么题目要求结点最多能有多少,那么就是1个度为1
n=248
这道题很巧妙,不管度为1的结点存不存在,都不会影响124个叶子结点这个题目要求,为了结点最多,我们就应该设度为1的有一个

(10)一棵有n个结点的二叉树采用二叉链式存储结点,其中空指针数为:
首先想象二叉树的链式存储,是用双向链表的结构存的,左右孩子各占一个指针域嘛,所以n个结点就会有2n个指针,又因为一条边就代表着一个指针指向下一个元素,也就是指针不为空;但是n个结点的二叉树,边数只有 n - 1条啊(根结点头顶上没有边指向它),所以按照分析,一条边能使一个指针域不空,那么空指针就为: 2n - (n-1) = n + 1

或者更简单画图,画个三个结点的二叉树,就会发现空指针域是4(两个叶子结点的左右孩子指针都是空的),7个结点的二叉树,空指针是8(4个叶子结点的左右孩子指针都空)…

(11)【2009】已知一棵完全二叉树的第六层有8个叶子结点,则该完全二叉树的结点个数最多是:
为了结点数最多,我们可以假设有七层,第七层不满,这样第六层就会产生叶子结点
若有第七层,则第七层最多有:2^7-1 = 64 个结点,且第七层的全部是叶子结点,但是第六层要有8个叶子,也就是可以想象成第六层有8个结点没有生育能力,无法生孩子,那么第七层就会少 2*8 = 16个结点
所以第七层只有64 - 16 = 48 个叶子

那么总的结点个数就是前满六层 + 第七层的48 = 2^6 - 1 + 48 =111个

(12)【2011】若一棵完全二叉树有768个结点,则该二叉树中叶子结点的个数是:
768 / 2 向下取整 = 384 个非叶子
叶子结点=总结点 - 非叶子结点 = 384

(13)【2018】设一棵非空完全二叉树T的所有叶子结点均位于同一层,且每个非叶子结点都有2个子结点。若T有K个叶子结点,则T的结点总数是:
题目意思就是,凡是能生孩子的都生了两个,而且所有孩子都在同一层,整个家族团团圆圆和和美美,这是啥?这不就是满二叉树
K个叶子
度为1的n1没有
公式 : k = n0(叶子) = n2 + 1
即 n2 = k - 1
总结点 n = n2 + n0 = k - 1 + k = 2k -1

(14)【2020】对于任意一棵高度为5且有10个结点的二叉树,若采用顺序存储结构保存,每个结点占用1个存储单元,则存放该二叉树需要的存储单元数量至少是:
首先注意它只是普通二叉树,高度为5,且只有10个结点
其次注意它要求:存储单元数量至少
至少的意思是:我这棵树随便摆的情况下,多少个存储单元能装得下
所以我们应该考虑5层满二叉,其实它不是五层满二叉
但是,顺序存储结构的特点就是:空的结点也会占用一个存储空间,所以当该随便摆的普通二叉树的大量结点堆满了右侧,左侧为空,其实左侧还是会占用存储空间,所以只能按五层满二叉计算
所以得:2^5 - 1 = 31 个存储单元

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

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

相关文章

Redis的5大数据类型

Redis的5大数据类型 这里说的数据类型是value的数据类型,key的类型都是字符串。 5种数据类型: redis字符串(String)redis列表(List)redis集合(Set)redis哈希表(Hash&a…

PMP®|对如何做好项目管理的几点建议

PMP|对如何做好项目管理的几点建议 来自一位从事工程项目管理多年,也接触过软件开发项目的资深人士针对如何做好项目管理泛泛提些建议。 1、明确项目组自身定位。不同公司对项目管理的理解不同,项目制的执行方式不同,项目组在各公司的地位…

使用springboot每日推送早安问候语到用户微信【部署篇】

上一篇介绍文章 上一篇介绍文章 https://blog.csdn.net/weixin_45206218/article/details/127872136代码仓库 代码仓库 https://gitee.com/stevezhaozps/daily-weather前期准备 一台云服务器云服务器安装MySQL8.x云服务器安装jdk8 数据库初始化 由于本项目使用的是springd…

LIVOX HAP激光雷达使用方法

一、Livox HAP介绍 Livox HAP 由 Livox 团队耗时两年精心打造,是 Livox 首款面向智能辅助驾驶市场研发的车规级激光雷达。HAP 于 2021 年在全新自建的车规级智能制造中心进行批量生产,可满足 74 项严苛的车规可靠性要求。HAP 已成功为小鹏汽车、一汽解放…

C#【必备技能篇】Release下的pdb文件有什么用,是否可以删除?

文章目录一、简介二、问答三、Release中删除pdb文件四、重要事项一、简介 英文全称:Program Database File 中文全称:程序数据库 文件 程序数据库 (PDB) 文件保存着调试和项目状态信息,使用这些信息可以对程序的调试配置进行增量链接。 在…

ORCID以及ResearcherID注册

ORCID以及ResearcherID注册 ORCID 网址: https://orcid.org/ 点击注册 开始注册 跟着流程走一遍 最后登录进入个人首页,可以看到自己的ORCID。 ResearcherID 网址:https://webofscience.com 注册 邮箱点击确认邮件后,登录进…

操作系统 | 实验七 SPOOLING技术

文章目录一、实验目的二、实验内容三、数据结构3.1 数据结构3.2 函数以及功能四、程序流程图五、实验代码六、实验结果七、实验体会总结一、实验目的 理解和掌握SPOOLING假脱机技术 二、实验内容 通过SPOOLING技术可将一台物理I/O设备虚拟为多台逻辑I/O设备,同样…

奇技淫巧第7期

终于腾出时间了,现在对3~11月份知识点作总结。 这段时间主要在写论文,跑案例分析。暑期的比赛另写了一个小系列,这里就不再写了。 总的来说,零散的代码知识点在积累几个月后还是要汇总回顾一下的。 文章目录Python 歪门邪道fnmatc…

SpringBoot SpringBoot 开发实用篇 3 测试 3.7 匹配响应体【JSON】

SpringBoot 【黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)】 SpringBoot 开发实用篇 文章目录SpringBootSpringBoot 开发实用篇3 测试3.7 匹配响应体【JSON】3.7.1 问题引入3.7.2 匹配响应体【JSON…

力扣刷题day50|739每日温度、496下一个更大元素 I

文章目录739. 每日温度暴力思路单调栈思路什么时候用单调栈?解题思路496. 下一个更大元素 I思路单调栈739. 每日温度 力扣题目链接 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对…

[Games 101] Lecture 11-12 Geometry 2 (Curves and Surfaces)

Lecture 11-12 Geometry 2 (Curves and Surfaces) Curves Bzier Curves 贝塞尔曲线 使用一系列的控制点定义某个曲线,控制点定义曲线满足的一些性质可以定义出唯一的曲线,从 p0p_0p0​ 开始,p3p_3p3​ 结束 de Casteljau Algorithm 绘制贝…

Linux16 ---共享内存、操作函数、使用示例

一、共享内存 1、 共享内存为多个进程之间共享和传递数据提供了一种有效的方式。共享内存是先在物理内存上申请一块空间,多个进程可以将其映射到自己的虚拟地址空间中。 所有进程都可以访问共享内存中的地址,就好像它们是由 malloc 分配的一样。如果某…

(二)Easyexcel 的使用(读取数据到map集合中)

前面讲述了使用实体类的方式绑定excel表头的方式进行读取和写入操作,是比较简单的,那么由于表头可能会变,那么就不能使用绑定实体类的方式进行了,于是搜索百度一番,借鉴别人的博客,使用map集合的方式进行读…

一文详解Cookie 和 Session 会话技术

目录 Cookie Session 分布式下Seesion的不足 Cookie 定义:Cookie是服务器发送到浏览器,并保存在浏览器端的一小块数据。浏览器下次访问该服务器时,会自动携带该数据块,将其发送给服务器。 作用:由于HTTP是无状态的&…

tomcat修改默认端口详细步骤(包含运行测试)

前言: 在tomcat端口被占用或者需要把默认的8080端口换成其他的端口,就可以修改默认端口。 一、修改步骤 1.打开tomacat的文件位置--conf目录 2.找到server.xml右键打开方式选择记事本打开 3.找到这个文件的Connector port "8080" 大概位…

TVM 中文站正式上线!最全机器学习模型部署「参考书」它来了

内容一览: 近日,由 MLC 社区志愿者共同翻译校对的 TVM 中文文档正式发布,现已托管至超神经官网 Hyper.AI。 关键词: TVM 开源 机器学习编译器 本文首发自微信公众号:HyperAI超神经 面世5年,TVM成备受追捧的…

tensorflow2.0 学习笔记:一、神经网络计算

mooc课程Tensorflow2.0 笔记 人工智能三学派 行为主义:基于控制论,构建感知-动作控制系统(自适应控制系统)符号主义:基于算数逻辑表达式,求解问题时先把问题描述为表达式,再求解表达式&#x…

AMD EPYC(霄龙)Genoa服务器 | 综合评测

9004 | EYPC | 9654P | AMD 9654 | 7703 | Genoa | Intel 当生命科学、医药研发、东数西算、数据分析、数据挖掘、算力、数据中心、智算中心、遥感测绘、地质遥感等场景逐渐成熟,上层应用场景改变了底层硬件基础,计算、存储、网络架构的迭代升级和调整融…

win11连接共享打印机错误0x00000709

连接共享打印机出现错误0x00000709是常见的打印机错误了,但是用户升级到win11系统之后还遇到了同样的问题,这该如何解决?今天小编就给大家带来详细的解决办法,一起来看看。 方法一、卸载补丁 Win10卸载有问题的补丁KB5006667或KB5…

java项目-第145期ssm汽车在线销售系统-java毕业设计_计算机毕业设计

java项目-第145期ssm汽车在线销售系统-java毕业设计_计算机毕业设计 【源码请到资源专栏下载】 今天分享的项目是《ssm汽车在线销售系统》 该项目分为2个角色,管理员和用户。 用户可以浏览前台,包含功能有: 首页、车辆信息、新闻资讯、留言反馈、我的、跳…