B-树暂记:非根非叶节点至少有 m/2上取整 个分支

B-树的建立、插入和删除结点的过程

多路平衡查找树

目标:多叉 有序 平衡

两个叉一个关键字的叫二叉树
m个叉m-1个关键字的树就是m叉树

顺序仍然是左小右大

根 节 点 至 少 有 两 个 分 支 根节点至少有两个分支
非 根 非 叶 节 点 至 少 有 ⌈ m / 2 ⌉ 个 分 支 非根非叶节点至少有 \lceil m/2 \rceil个分支 m/2
因为叶子结点不包含关键字,所以可以把叶子结点看成在树里实际上并不存在外部结点,指向这些外部结点的指针为空,叶子结点的数目正好等于树中所包含的关键字总个数加1。

添加节点

插入节点时当个数大于m-1时:
将 ⌈ m / 2 ⌉ 位 置 的 元 素 “ 提 ” 出 来 ( 将 左 侧 与 右 侧 的 关 键 字 分 别 装 在 新 的 节 点 中 ) 将 \lceil m/2 \rceil 位置的元素“提”出来\\(将左侧与右侧的关键字分别装在新的节点中) m/2()
当前层分解,传入上一层(可能产生连锁反应)
插入元素8
在这里插入图片描述
在这里插入图片描述
拆分上移

在这里插入图片描述

在这里插入图片描述
上部分超过三叉树的元素限制,连锁反应
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

删除节点

删除的节点是“终端”节点

1.直接删除

在这里插入图片描述

在这里插入图片描述

2.兄弟够借

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.兄弟不够借

在这里插入图片描述
在这里插入图片描述
合并操作:
在这里插入图片描述
在这里插入图片描述

删除的节点为非终端节点

如果子树元素都为1:
将要删除节点用其前驱或后继替代(位置替换),然后删除
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值