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

本文介绍了B-树的基本概念,包括其作为多路平衡查找树的特点,以及如何通过插入和删除节点来保持树的平衡状态。重点讲解了节点插入时的分裂过程及节点删除时的合并操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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:
将要删除节点用其前驱或后继替代(位置替换),然后删除
在这里插入图片描述

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值