2021-01-14

学习目标:

B树和B+树区别

学习内容:

提示:这里可以添加要学的内容
B树(B-树)
优点
1、 弥合不同的存储级别之间的访问速度上的巨大差异,实现高效的 I/O。
2、单个节点能够存储大量键。阶比较大。
3、 二叉树搜索的一般化。
4、保持树的相对高度。
相关概念
1.根节点。
2.内部节点:除叶子节点和根节点之外。
3.叶子节点。所有叶子节点位于同一层。
4.关键字按序排列。
5、叶子节点没有指针相连。
6、查询最好时间复杂度:O(1).
B树相关操作
插入元素:
1.判断当前元素在B树中是否存在,不存在,在叶子节点处结束,然后在叶子节点中插入该新元素。
如果节点未满,不用分裂,直接按顺序插入。分裂的时候,要提取中间元素。中间元素上移到父结点中。
删除元素:
1.查找需删除的元素,该元素在其结点中进行删除。
2.删除该元素后,判断它是否有左右孩子节点。
3.有,就上移孩子结点中的某相近元素(左孩子最右边的节点或右孩子最左边的节点)到父节点中。没,就直接删除。
4.节点中删除元素后边的元素向前移动。
5.不满足条件的话,要进行合并。

B+树(B树的变形)


特征 1.叶子节点成环。 2.叶子节点存放数据块,非叶子节点存放索引。 更适合数据库索引原因? 1.B+树内部节点,并没有指向关键字具体信息的指针,盘块所能容纳的关键字数量也越多。IO读写次数就降低了; 2.查询效能更稳定。 非叶子结点都存的是索引。所有关键字的查询的路径长度相同。 3.B+树便于范围查询 范围查找 B树用的是中序遍历,B+树用的是在链表上遍历。 B+树内部节点不保存数据,B树保存。 B+树插入 1.要插入某个元素,如果叶节点的page页和索引节点的page都没满,直接插入到找到该插入的叶结点的位置; 2.如果是索引节点未满,叶节点已满,索引节点未满,则 2.1拆分页节点 2.2将中间节点上移至索引节点。 2.3插入的索引节点和叶节点都满了。 2.3.1先拆分叶节点,中间节点上移 2.3.2索引节点依次拆分上移,直到不需要拆分,即可。

3.B+树删除:
3.1要删除的元素在叶子节点,直接删除即可。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值