数据库 补充 树,红黑树,b树,b+树

01.树

02.二叉树和二叉平衡树


03.平衡二叉树的恢复

将导致不平衡的结点称作被破坏者 ,破坏了结点的平衡的结点成为破坏者 ,经过调整可以让该树平衡的结点称为调整结点
























LL型:

以被破坏者的左孩子结点作为调整结点,对其进行右旋。如果调整结点有右子树,将其右子树作为被破坏者的左子树。

LR型:

以被破坏者的左孩子的右孩子结点为调整结点。

如果破坏者为调整结点的左孩子,以调整结点进行左旋,将破坏者作为调整结点的父节点的右子树,后进行右旋,破坏者位置保持不变。

如果破坏者为调整结点的右孩子,以调整结点进行左旋,破坏者位置保持不变。后进行右旋,将破坏者作为被破坏者的左子树。

RR型:

以被破坏者的右孩子结点为调整结点,对其进行左旋。如果调整结点有左子树,将其右子树作为被破坏者的右子树。

RL型:

以被破坏者的右孩子的左孩子结点为调整结点。

如果破坏者为调整结点的左孩子,以调整结点进行右旋,破坏者位置保持不变,后进行左旋,将破坏者作为被破坏者的右子树。

如果破坏者为调整结点的右孩子,以调整结点进行右旋,将破坏者作为调整结点的父节点的左子树。后进行左旋,破坏者位置保持不变。


红黑树:

红黑树是一种自平衡的二叉查找树,是一种高效的查找树。

http://t.csdnimg.cn/Gy3MM
最重要的是红黑树的根节点到任意的叶子结点的最短路径都是一样的长度。


B树:(m阶查找树)

节点结构中的

n记录关键字的个数

k是关键字

p是指针

一颗m阶的B树满足如下条件:

  • 每个节点最多只有m个子节点(节点内至多m-1关键字)。
  • 除根节点外,每个非叶子节点具有至少有 m/2(向下取整)个子节点。
  • 非叶子节点的根节点至少有两个子节点。
  • 有k颗子树(k个孩子节点)的非叶节点有k-1个键,键按照递增顺序排列。 叶节点都在同一层中。

(1)什么是B树的阶 ?

B树中一个节点的子节点数目的最大值,用m表示,假如最大值为4,则为4阶,如图,所有节点中,节点13,16,19拥有的子节点数目最多,四个子节点(灰色节点),所以可以定义上面的图片为4阶B树。

(2)什么是根节点 ?

节点【10】即为根节点,特征:根节点拥有的子节点数量的上限和内部节点相同,如果根节点不是树中唯一节点的话,至少有俩个子节点(不然就变成单支了)。在m阶B树中(根节点非树中唯一节点),那么有关系式2<= M <=m,M为子节点数量;包含的元素数量 1<= K <=m-1,K为元素数量。

(3)什么是内部节点 ?

节点【13,16,19】、节点【3,6】都为内部节点,特征:内部节点是除叶子节点和根节点之外的所有节点,拥有父节点和子节点。假定m阶B树的内部节点的子节点数量为M,则一定要符合(m/2)<= M <=m关系式,包含元素数量M-1;包含的元素数量 (m/2)-1<= K <=m-1,K为元素数量。m/2向上取整。

(4)什么是叶子节点?

节点【1,2】、节点【11,12】等最后一层都为叶子节点,叶子节点对元素的数量有相同的限制,但是没有子节点,也没有指向子节点的指针。特征:在m阶B树中叶子节点的元素符合(m/2)-1<= K <=m-1。

b树的形成:


b+树:

所有节点都会出现在叶子节点链表中:

叶子节点会形成一个链表。

相关推荐
大师兄666811 分钟前
HarmonyOS7 数据持久化 relationalStore:数据库实战
数据库·arkui·实战案例·harmonyos7
冰茶丿22 分钟前
状态机在嵌入式系统中的应用:不只是switch-case这么简单
数据库·嵌入式硬件·mongodb
AIHR数智引擎24 分钟前
15%对撞40%:WEF白皮书里的AI组织隐忧
数据库·人工智能·经验分享·职场和发展·aihr
卓怡学长30 分钟前
w261springboot基于web学校课程管理系统
java·数据库·spring boot·spring·intellij-idea
嘉泰姆半导体官方33 分钟前
CXAR41337C 双通道数字音频功放 | 2×20W | EQ+DRC | I²S | MCLK-Less - 嘉泰姆电子
前端·javascript·数据库
不坑老师1 小时前
怎么在Word中制作汉字书写笔顺——不坑盒子汉字笔顺步骤在小学低段识字教学中的应用
前端·数据库·人工智能·word·excel·office
苍狼唤1 小时前
SQL+C# 增删改查(练习)
数据库·sql·c#
2301_800256111 小时前
第七章 空间存储与索引 知识点梳理-2
数据库·sql·oracle
草莓熊Lotso2 小时前
【Redis 初阶】 从分布式演进背景到环境搭建全解析
数据库·人工智能·redis·分布式·缓存
倔强的石头_2 小时前
优化器为什么敢把你写的 LEFT JOIN 悄悄改掉?-国产化金仓 KES 优化器设计思路拆解
数据库