B-tree

本文详细介绍了B树的概念,包括5叉排序树的结点定义、如何保证查找效率、B树的定义及其核心特性,并探讨了B树的高度。此外,还深入解析了B树的插入和删除操作,包括结点关键字个数的范围、分裂操作、直接前驱或后继替代等策略。
摘要由CSDN通过智能技术生成

 

B树

5叉排序树的结点定义

struct Node {    ElemType keys[4]; // 最多4个关键字    struct Node *child[5]; // 最多五个孩子    int num; // 节点中有几个关键字};
  • 最少1个关键字, 2个分叉; 最多4个关键字, 5个分叉
  • 结点内关键字有序

如何保证查找效率

  • 若每个结点内关键字太少, 导致树变高, 要查更多层的结点, 效率低
    • 策略1: m叉查找树中, 规定除了根结点外, 任何结点至少有⌈m/2⌉个分叉, 即至少含有⌈m/2⌉-1个关键字(如果整棵树只有1个元素, 根结点只有两个分叉)(对于5叉查找树, 除根结点外, 至少有3个分叉, 2个关键字)
  • 不够平衡, 树会很高, 要查很多层结点
    • 策略2: m叉查找树中, 规定对于任何一个结点, 其所有子树的高度都要相同

B树的定义

B树, 又称多路平衡查找树, B树中所有结点的孩子个数的最大值称为B树的阶, 通常用m表示. 一棵m阶B树或为空树, 或为满足如下特性的m叉树: 1. 树中每个结点至多有m棵子树, 即至多含有m-1个关键字 2. 若根结点不是终端结点, 则至少有两棵子树 3. 除根结点外的所有非叶结点至少有⌈m/2⌉棵子树, 即至少含有⌈m/2⌉-1个关键字 4. 所有的叶子结点都出现在同一层次上, 并且不带信息(可以视为外部结点或者类似于折半查找树的查找失败结点, 实际上这些结点不存在, 指向这些结点的指针为空) 5. 所有非叶结点的结构如下: | n | P0 | K1 | P1 | K2 | P2 | … |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值