当前位置: 首页 > news >正文

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

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

高度为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.lryc.cn/news/465685.html

相关文章:

  • jenkins添加新服务
  • 网络连接设备的功能与应用概述
  • 【SpringCloud】04-Gateway网关登录校验
  • FFmpeg 库的简要说明
  • Go:error处理机制
  • Python机器学习中的主成分分析(PCA)全面解析与应用
  • MySQL 安装和基本使用
  • RequestBody接收参数报错com.fasterxml.jackson.databind.exc.MismatchedInputException
  • 大数据治理的关键技术:构建稳固的数据基石
  • OS管理和进程的学习
  • Linux 部署 Harbor 镜像仓库详解
  • 怎么把flv格式转换成mp4?将flv格式换成MP4格式的简单方法
  • 原型模式和建造模式的区别
  • 最新 client-java 调用 k8s ApiServer
  • TCP单包数据大于1460字节会被拆包的问题
  • 苏宁关键字搜索接口技术解析与实战
  • Java学习教程,从入门到精通,Java 基本数据类型详解(5)
  • 使用Flask实现本机的模型部署
  • 基于SSM的校园跑腿网站的设计与实现
  • 【Java】正则表达式详解
  • Java知识巩固(七)
  • Ubuntu22.04 更换源
  • 江恩理论和波浪理论的结合
  • AJAX——AJAX 取消请求
  • ruoyi域名跳转缓存冲突问题(解决办法修改:session名修改session的JSESSIONID名称)
  • 嵌入式QT中基本工程模板分析
  • Linux网络:UDP socket - 简单聊天室
  • Codeforces Round 646 (Div. 2) E. Tree Shuffling(树,贪心)
  • HCIE-Datacom题库_11_IPsecVPN【17道题】
  • Dongle Sentinal在Jenkins下访问不了的问题