个人觉得非常好的B树,B+树的总结

1.B树的总结

https://blog.csdn.net/qq_32924343/article/details/80167184

1.关于根节点
根节点要么没有儿子,[2, m]个儿子
2.其他节点要么没有儿子,要么[m/2向上取整, m]个儿子
3.每个节点中的key个数 
m/2向上取整-1 <= key <= m-1

插入:

节点中key的数目过大:

1.分裂2.将中间节点拆分后合并到父节点3.父节点继续调整

删除

删除可能导致key的数目过小

删除非叶子结点:直接找后继结点,然后用删除叶子结点的方法

删除叶子结点方法:先找兄弟 再找爸爸 最后合并,爸爸有问题了,重复这一步

简而言之,总会用到删除叶子结点的方法

现在要删除120

1.122移动到120,删除122

2.130移动到122,删除130,之后合并

3.122移动到130,合并

2. B+树的总结

1.根节点[2, m]个儿子
2.其他节点[m/2向上取整, m]个儿子
3.关键字数和儿子数相同

插入

和B树的区别在于合并分裂时把中间节点保留了一份(下图的m=4)

插入数据7

删除

直接删除叶子结点,直接采用找兄弟找爸爸再合并

删除9呢

找爸爸再合并

 

3.B+树和B树的区别

1.关键字

B+树的关键字和子树个数一样

B树的关键字个数比子树少1

2.叶子结点

B+树的叶子结点有关键字和指针,并且叶子结点之间顺序连接

B+树的叶子结点有只有部分关键字和指针,并且叶子结点无连接

3.非叶子结点

B+树的非叶子结点没有关键字信息

B树的叶子结点有关键字信息和指针

4. 非叶子结点的子树指针P[i],指向关键字值属于[K[i], K[i+1])的子树

(B树是开区间) 左闭右开

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值