我试图弄清楚当节点溢出时到底会发生什么。
信息:
在我的 b+ 树中,每个块有 4 个指针和 3 个数据部分。
问题:
我明白,当出现溢出时,我们会分成 2 个节点,每个节点有 2 个节点
键,
并将中间值插入父节点,而不从子节点中删除(与 b 树不同)。
然而我遇到了这样的情况:
|21|30|50|
|10|20|-| |21|22|25| |30|40|-| |50|60|80|
我想插入钥匙 23
首先我分裂|21|22|25|进入:|21|22|-|和|23|25|-|
现在我需要将密钥 23 插入父项 |21|30|50|女巫导致另一次分裂。
|21|23|-|和|30|50|-|
但是30之前的指针指向哪里呢?
有没有可能这个指针和23后面的指针都指向|23|25|-|
?
当插入23时:
- 正如你所说,21|22|-|和|23|25|-|被创建
- 这 2 个节点需要一个父节点
- 在根节点中创建父节点: |21|23|30|50|
- 根现在有太多元素
- 将根分为 2 个节点 |21|23|- 和 |30|50|-
- 为 2 个新节点添加一个新父节点(恰好是树的新根)
基本上,该插入会将树的深度增加 1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)