数据结构树-->B+树

目录

1. 数据结构树–>树基础
2. 数据结构树–>二叉树
3. 数据结构树–>二叉查找树\二叉排序树
4. 数据结构树–>平衡二叉树
5. 数据结构树–>霍夫曼树
6. 数据结构树–>红黑树
7. 数据结构树–>二叉堆
8. 数据结构树–>B树
9. 数据结构树–>B+树

B+树

1. 特性

在这里插入图片描述

  1. 数据个数比孩子节点个数少1.
  2. B+树包含两种节点,索引节点和叶子节点,所有数据都保存在叶子节点中,索引节点只保存索引,根节点可以是索引可以是叶子节点。
  3. m阶B+树节点最多有 m-1个索引或数据。
  4. 节点索引或数据都从小到大排列,内部索引后数据大于左子树,小于或等于右子树。
  5. 每个叶子节点都右相邻叶子节点的指针。

2. B+树的插入

B+树的插入和B树的插入类似,都是节点的分裂和数据的上移,只是分裂后中间数据变为了右子树的起始数据,上移的数据为中间数据的索引。

eg: 5阶B+树插入 5.、8 、10、15、16

插入根节点构成
在这里插入图片描述

节点到达5阶限制,节点分裂,索引上移,

  1. 以中间数据10为分割点,形成新的节点5、8和 10、15、16.
  2. 中间数据10的索引上移,构成父节点。

构建后的B+树

在这里插入图片描述

3. B+树的删除

B+树的删除也与B树的删除类似,只是父节点只是索引节点不保存数据,索引当我们安装B树的规律删除节点后,还需要将上移的父节点下移到需要的节点。

eg: 原 B+ 树

在这里插入图片描述

3.1 删除22

没有破坏B+树的特性,直接删除

3.2 删除15

删除15后,节点数据个数为1,破坏了B+树特性:节点数据少于 m/2 ,

因为父节点只是保存的索引,所以这里只能从兄弟节点借一个数据或者与兄弟节点合并,这个逻辑与B树相同,

需要的操作是:兄弟节点最大值索引上移,代替索引10, 小弟节点数据最大值9,下移到该节点。

最终:

在这里插入图片描述

3.3 删除数据7

数据7删除后,节点不符合B+树特性,兄弟节点只有2个,所以节点与兄弟节点合并形成新的节点,索引7也将消除,新节点父节点指向索引9
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值