【数据结构】二叉树概念 | 满二叉树 | 完全二叉树

二叉树的概念

二叉树在实践中用的很多。

一棵二叉树是结点的一个有限集合,该集合:

  • 或者为空
  • 一个根结点加上两棵别称为左子树右子树的二叉树组成。
  • 二叉树最多两个孩子

这里注意:二叉树并不是度为2的树

二叉树的度最大值是2,并不是说它的度一定为2。所以一下这四种情况也均是二叉树:

  • 空树
  • 只有根节点
  • 只有左子树
  • 只有右子树
  • 左右子树均存在

二叉树不存在度大于2的节点;

二叉树的子树有左右之分次序是不能颠倒的,因此二叉树是有序树

二叉树通俗也可以理解为对树进行了“计划生育”。 “计划生育”也就是生两个小孩,但是是每一家来说都是生两个吗?

那么度为2的一定是二叉树吗?

  • 度为2一定是二叉树。度为2的话,那么所有节点的最大的度就是2,而二叉树的概念是不存在度大于2的节点。
  • 二叉树是一个特殊的树,它的度最大为2,但是并没有说一定为2。

特殊的二叉树

满二叉树

一个二叉树,如果每一个层的结点数都达到最大值,那么这个二叉树就是满二叉树。也就是说,如果一个二叉树的成熟为K,那么结点总数就是2^{K}-1,那么它就是满二叉树。

根据上图:

  • 假设高度为h,那么就会有2^{h}-1的节点;
  • 那么假设树有N个节点的话,那就是 2^{h}-1=N;那么 高度就为 h=\log _{2}(N+1)

完全二叉树

完全二叉树,前h-1层都是满的,最后一层不一定满,但是从左到右必须连续

完全二叉树是效率很高的数据结构,完全二叉树是由满二叉树而引出来的。对于深入为K的,有n个节点的二叉树,当且仅当其每一个节点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。要注意的是满二叉树是一种特殊的完全二叉树。

这里注意二叉树顺序是固定的,必须是连续的。

假设完全二叉树的高度为h,那么它的结点数量是多少呢?

完全二叉树的最后一层的范围: \left [ 2^{h-1},2^{h}-1 \right ]

思路:

  • 这里我们想在满二叉树中,结点数为2^{h}-1
  • 那么满二叉树中的上一层就是有2^{h-1}-1
  • 因为完全二叉树就是满二叉树的基础上,最后一层不满,也就是最后一层的结点数最多有2^{h-1},最少有1个;
  • 所以根据等比公式可以求得出完全二叉树最后一层的范围为: \left [ 2^{h-1} , 2^{h}-1 \right ]

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

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

相关文章

实现外卖配送的智能化:外卖配送可视化技术解析

随着互联网技术的不断发展,外卖配送行业也迎来了快速发展的时代。而随之而来的是越来越多的用户对于外卖配送的质量和效率提出了更高的要求。如何让外卖配送更加可视化,成为了外卖配送行业亟需解决的问题。 外卖配送可视化是指通过技术手段,将…

编程实例,随机抽奖编程

编程实例,随机抽奖编程 操作步骤: 1、将在本店消费的会员数据导入到抽奖池,可以设定最近多少天内的记录。 2、点击 开始随机抽奖,软件将从抽奖池随机抽取9名,并不断变化,每0.02秒重新随机抽取9名显示到屏…

vue2项目从0搭建(三):配置环境变量及对应的webpack配置

前言 实际业务开发中,一个项目很可能会同时配置好几套环境。 比如:常规开发环境,开发测试环境,正式的测试环境,预发测试环境,客户甲的生产环境,客户乙的生产环境,通用生产环境,独立应用环境,微前端环境,大屏专用环境,移动端环境。 一女多嫁的实际业务场景,就需要我们进行多样…

oracle rac环境归档日志清除

文章目录 一、处理步骤1、使用终端登录上服务器查看磁盘使用状态2、使用恢复备份管理工具RMAN删除归档日志 二、详细操作步骤三、定时任务自动清归档日志1、编写删除脚本4、测试脚本运行情况5、设置定时任务每周执行一次,并测试运行效果 昨天单位的所有系统都连不上…

进程已结束,退出代码-1073741571 (0xC00000FD)

今天遇到了一个很邪门的问题,没有报错,只是提示“进程已结束,退出代码-1073741571 (0xC00000FD)”。后来查资料说是栈溢出。 出问题的应该是上面这段代码。 这里我想把一个128*128的矩阵进行剪枝操作。 传入的128*128的矩阵太大了,两组for循…

rocketMQ5.0顺序消息golang接入

本人理解,顺序消息如果不分消息组,那么会影响并行处理速度,所以尽量消息组分的散一些 首先上要求,官方文档如下: 总结: 1.必须同一个消息组,消息组和消费组不是一个概念,不要混 2.必…

首个央企量子云计算项目,中标!

6月29日,北京玻色量子科技有限公司(简称“玻色量子”)成功中标中国移动云能力中心“2023—2024年量子算法及光量子算力接入关键技术研究项目”,这是玻色量子继与移动云签订“五岳量子云计算创新加速计划”后🔗&#xf…

Qt5.15编译工程报APK 的 API 级别设定低于套件所需的最低要求

APK 的 API 级别设定低于套件所需的最低要求。 套件所需的最低 API 级别是 21。 Error while building/deploying project qtpdfium (kit: 安卓 Qt 5.15.2 Clang Multi-Abi) When executing step "构建安卓 APK" 修改xml 工程中是16 修改为21 重新编译,问…

JSP:JDBC

JDBC(Java Data Base Connectivity的缩写)是Java程序操作数据库的API,也是Java程序与数据库相交互的一门技术。 JDBC是Java操作数据库的规范,由一组用Java语言编写的类和接口组成,它对数据库的操作提供基本方法&#…

YaRN方法:无需微调,高效扩展语言模型上下文窗口/蚂蚁集团与浙大发布原生安全框架v1.0,引领企业网络安全新时代 |魔法半周报

我有魔法✨为你劈开信息大海❗ 高效获取AIGC的热门事件🔥,更新AIGC的最新动态,生成相应的魔法简报,节省阅读时间👻 🔥资讯预览 YaRN方法:无需微调,高效扩展语言模型上下文窗口 蚂蚁…

【Python】itertools模块,补充:可迭代对象、迭代器

Python中 itertools模块创建高效迭代器、处理序列数据集。 此模块所有函数返回迭代器,可用for循环获取迭代器中的内容,也可用list(...)用列表形式显示内容。 import itertools[ x for x in dir(itertools) if not x.startswith(_)] # 结果:…

从零开始,用Docker-compose打造SkyWalking、Elasticsearch和Spring Cloud的完美融合

🎏:你只管努力,剩下的交给时间 🏠 :小破站 "从零开始,用Docker-compose打造SkyWalking、Elasticsearch和Spring Cloud的完美融合 前言准备工作编写docker-compose.yml文件为什么使用本机ip为什么skywa…

Java 简单配置环境变量,切换多个jdk版本

文章目录 前言一、jdk下载二、配置环境变量三、查看jdk版本四、配置多个jdk五、切换jdk 前言 windows 配置jdk环境变量,如果项目没有规定使用的jdk版本的话,建议使用jdk8,这是最常用也是最稳定的版本 一、jdk下载 https://www.oracle.com/ja…

技术部工作职能规划分析

前言 技术部的职能。以下是一个基本的框架,其中涵盖了技术部在公司中的关键职能和子职能。 主要职能 技术部门的主要职能分为以下几个板块: - 技术规划与战略: 制定技术规划和战略,与业务团队合作确定技术需求。 研究和预测技术趋势,引领公司在技术创新和数字化转型方…

PC分页操作以及loading效果

page-size 每页显示条目个数 current-page 当前页数 total 数据总数 current-change【currentPage 改变时会触发】 切换分页时会先加载,等在接口数据,接口返回,加载会关闭(在获取接口数据完毕哪里加上this.loadingfalse&#xff0…

苹果引导式访问是什么意思?怎么使用?这里有答案!

可能还有很多小伙伴都不知道,苹果手机里有一个隐藏的功能叫做引导式访问。引导式访问是什么意思?引导式访问是一种特殊的功能,可以帮助用户限制在某个应用程序中的操作,以保护隐私或防止误操作。今天,小编将给大家详细…

【免费】小傅哥 DDD 开发小册

作者:小傅哥 博客:https://bugstack.cn 沉淀、分享、成长,让自己和他人都能有所收获!😄 大家好,我是技术UP主小傅哥。 如果在面试的时候,面试官问你DDD是什么,你怎么解释&#xff1…

某上市证券公司:管控文件交换行为 保护核心数据资产

客户简介 某上市证券公司成立于2001年,经营范围包括:证券经纪、证券投资咨询、证券承销与保荐、证券自营等。经过多年发展,在北京、上海、深圳、重庆、杭州、厦门等国内主要中心城市及甘肃省内各地市设立了15家分公司和80余家证券营业部。20…

F盘满了变成红色怎么清理?这4个简单方法记得收藏!

“因为我电脑的磁盘比较多,我通常会把一些比较重要的文件放在F盘中。但是很奇怪,我的F盘用着用着就满成红色了,这该怎么办呢?应该怎么进行清理呢?” 我们在使用电脑时都会发现,电脑上有很多的磁盘。我们可以…

python 爬百度热搜并生成词云

1、爬取百度body存入txt def get_baidu_hot():url "https://top.baidu.com/board?tabrealtime"headers {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3&…