查缺补漏----数据结构树高总结

① 对于平衡二叉树而言,树高的规律:

高度为h的平衡二叉树的含有的最少结点数(所有非叶节点的平衡因子均为1):

n0=1,n1=1,n2=2

n_h=n_{h-1}+n_{h-2}+1

含有的最多结点数:

2^h-1(高度为h的满二叉树含有的结点数)

② 对于折半查找判定树树高:(和完全二叉树相同)

n=\left \lfloor log_2{n} \right \rfloor+1 或者\left \lceil log_2{(n+1)} \right \rceil

③ 对于二叉排序树的树高:

最大为n,最小:\left \lceil log_2{(n+1)} \right \rceil

④ 红黑树的树高的性质:

1.从根节点到叶节点的最长路径不大于最短路径的2倍。

这是每条路径上的黑结点相同,并且不能出现相邻的红节点导致的。

2.红黑树中任何左子树和右子树的高度差,不会超过两倍。

3.若根节点黑高为h,内部结点数(关键字)最少2^h-1个。(满树的结点数)

4.若红黑树总高度=h,则根节点黑高>=h/2,因为不能出现相邻的两个红节点。又因为内部节点数n\geq 2^{\frac{h}{2}}-1,所以:h\leq 2log_{2}(n+1)

⑤ 对于B树:m表示阶数

最小高度

若要让B树的高度最小,在关键字数量不变的情况下,应该让每棵树尽可能满。对于m阶B树而言,每个结点最多有m-1个关键字以及m个分叉,则:

最大高度:

最大高度---让各层的分叉尽可能的少,即根节点只有2个分叉,其他结点只有个分叉。各层结点至少有:第一层 1、第二层 2、第三层.... 第h层,第h+1层共有叶子结点(失败结点):个(第h+1层是叶子结点,则该树有h层)。

为什么n个关键字的B树有n+1个叶子结点?因为n个关键字把(-∞,+∞)分为了n+1个区域,这n+1个区域对应n+1种失败的情况,即n+1个失败节点(叶子结点)。

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

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

相关文章

Flutter在 iOS 中实现无弹窗获取剪切板内容

前言 在最新的项目需求中,我们需要在获取剪切板内容时避免弹出授权提示。这一功能是基于竞品的实现,旨在优化用户体验,特别是在推广获取跳转链接的场景下非常有用。 解决方案 通过查阅资料,我们发现对于 iOS 16 及以上的系统&a…

Fusion创建一个简单的api脚本文件

我的Fusion版本:Fusion 2.0.20476 x86_64 脚本模块在实用程序->附加模型->脚本和附加模块,快捷键为shifts 里面有一些演示脚本,可以直接使用 也可以自己创建一个新的脚本 创建的脚本在此处—— 选择脚本文件,点击编辑&a…

Unity Mirror NetworkManager初识

文章目录 Network Manager网络管理器什么是网络管理器?通过Transports进行定制化网络连接管理自定义连接地址和端口号Game State Management游戏状态管理Network Manager HUD玩家预制体及其生成控制Spawn Prefabs其他预制体注册Scene Management场景管理 Network Ma…

在Windows系统中,cmd 查看 MongoDB 相关信息

MongoDB是一种流行的NoSQL数据库,广泛应用于各种现代应用程序中。 1 查看MongoDB的版本号 要查看MongoDB的版本号,可以使用mongo命令连接到MongoDB,然后执行db.version()。 mongo连接到数据库后,执行以下命令,输出M…

读数据工程之道:设计和构建健壮的数据系统16源系统实际细节(下)

1. 数据共享 1.1. 云数据共享的核心概念是,多租户系统支持租户之间共享数据的安全策略 1.2. 任何具有细粒度权限系统的公有云对象存储系统都可以成为数据共享的平台 1.3. 数据共享也简化了数据市场的概念,在几个流行的云和数据平台上都可用 1.4. 数据…

RabbitMQ系列学习笔记(三)--工作队列模式

文章目录 一、工作队列模式原理二、工作队列模式实战1、抽取工具类2、消费者代码3、生产者代码4、查看运行结果 本文参考 尚硅谷RabbitMQ教程丨快速掌握MQ消息中间件rabbitmq RabbitMQ 详解 Centos7环境安装Erlang、RabbitMQ详细过程(配图) 一、工作队列模式原理 与简单模式相…

SpringBoot篇(二、制作SpringBoot程序)

目录 一、代码位置 二、四种方式 1. IDEA联网版 2. 官网 3. 阿里云 4. 手动 五、在IDEA中隐藏指定文件/文件夹 六、复制工程-快速操作 七、更改引导类别名 一、代码位置 二、四种方式 1. IDEA联网版 2. 官网 官网制作:Spring Boot 3. 阿里云 阿里云版制…

基于SSM+微信小程序的家庭记账本管理系统(家庭1)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 1、管理员端功能有首页、个人中心、用户管理,消费详情管理、收入详情管理、系统管理等。 2、用户端功能有首页、消费详情、收入详情、论坛信息、我的等功能。 2、项目技术 …

django5入门【02】创建新的django程序

注意: ⭐前提:已经安装了python以及django所依赖的包1、通过django-admin管理工具在命令行创建Django应用程序,创建命令如下: django-admin startproject ProjectName❓ 疑问:除了使用命令行创建django程序外&#x…

OCR经典神经网络(三)LayoutLM v2算法原理及其在发票数据集上的应用(NER及RE)

OCR经典神经网络(三)LayoutLM v2算法原理及其在发票数据集上的应用(NER及RE) LayoutLM系列模型是微软发布的、文档理解多模态基础模型领域最重要和有代表性的工作: LayoutLM v2:在一个单一的多模态框架中对文本(text)、布局&…

eQEP正交解码

目录 基本介绍 整体框架 关键模块 编译问题 实验效果 基本介绍 编码器是一种将角位移或者角速度转换成一连串电数字脉冲的旋转式传感器,我们可以通过编码器测量到位移或者速度信息。编码器从输出数据类型上分,可以分为增量式编码器和绝对式编码器。…

深入浅出MySQL:概述与体系结构解析

目录 1. 初识MySQL1.1. 数据库1.1.1. OLTP(联机事务处理)1.1.2. OLAP(联机分析处理) 2. SQL2.1. 定义2.2. DQL(数据查询语言)2.3. DML(数据操纵语言)2.4. DDL(数据定义语…

Python基于OpenCV的实时疲劳检测

2.检测方法 1)方法 与用于计算眨眼的传统图像处理方法不同,该方法通常涉及以下几种组合: 1、眼睛定位。 2、阈值找到眼睛的白色。 3、确定眼睛的“白色”区域是否消失了一段时间(表示眨眼)。 相反,眼睛长…

Python网络请求库requests的10个基本用法

大家好!今天我们要聊聊Python中非常实用的一个库——requests。这个库让发送HTTP请求变得超级简单。无论你是想抓取网页数据还是测试API接口,requests都能派上大用场。下面我们就一起来看看如何使用requests完成一些常见的任务。 引言 随着互联网技术的…

队列(数据结构)——C语言

目录 1.概念与结构 2.队列的实现 初始化QueueInit 申请新节点BuyNode 入队QueuePush 判断队为空QueueEmpty 出队QueuePop 读取队头数据QueueFront 读取队尾数据QueueBack 元素个数QueueSize 销毁队列QueueDestroy 3.整体代码 (文章中结点和节点是同一个意思) 1.概…

keil兼容C51和ARM,C251

三合一 C51,AEM,C251获取STC32的包 将 C51,AEM,C251安装到一块。 C51,AEM,C251 将三个软件分别下载到不同的文件夹KEIL,MDK,KEIL2里。 然后打开KEIL,MDK,KEIL2文件夹,复制KEIL文件夹里的C51和KEIL2文件夹里的C251的文件夹到MDK文件夹里。 打开KEIL和KEIL2文件夹里…

单链表的经典算法OJ

目录 1.反转链表 2.链表的中间节点 3.移除链表元素 ——————————————————————————————————————————— 正文开始 1.反转链表 typedef struct ListNode ListNode; struct ListNode* reverseList(struct ListNode* head) {//判空if(…

运行kafka查看所有主题Topic报错zookeeper is not a recognized option

执行命令查看:./kafka-topics.sh --list --zookeeper localhost:2181 报错 zookeeper is not a recognized option joptsimple.UnrecognizedOptionException: zookeeper is not a recognized optionat joptsimple.OptionException.unrecognizedOption(OptionExcept…

000010 - Mapreduce框架原理

Mapreduce框架原理 1. InputFormat 数据输入1.1 切片与 MapTask 并行度决定机制1.2 Job 提交流程源码和切片源码详解1.2.1 Job 提交流程源码详解1.2.2 FileInputFormat 切片源码解析(input.getSplits(job)) 1.3 FileInputFormat 切片机制1.3.1 切片机制1…

二、PyCharm基本设置

PyCharm基本设置 前言一、设置中文汉化二、设置代码字体颜色三、设置鼠标滚轮调整字体大小四、修改 PyCharm 运行内存4.1 方式一4.1 方式二 五、显示 PyCharm 运行时内存六、设置代码模版配置的参数有: 七、PyCharm设置背景图总结 前言 为了让我们的 PyCharm 更好用…