如果我的B树订单4 ,其中包含以下数据......
我需要在树上加2;我...
OR
请原谅可怜的图表。
答案 0 :(得分:3)
您执行第一个选项。对于任何订单的B树,您始终添加节点,然后执行向上传播的拆分。为了对数据结构进行各种基本(插入,删除,搜索)操作的精彩交互演示,我找到了一个有用的算法可视化页面here。找到B树页面,你会发现它执行选项1。
答案 1 :(得分:1)
如何找到向上推的元素:
1)将元素推入Btree的正确位置,检查是否发生溢出。
然后按照下面的步骤2和3进行操作。
2)找到CEILING ((order of Btree+1)/2
)。
3)向上移动索引元素,给出左右子树的两个指针。
注意:首先插入元素,然后如果发生溢出则按照步骤2和3进行操作。
此例子中首先插入2。
树的部分叶子变为| 1 | 2 | 3 | 5 |。
发生溢出,因为任何节点中只能有3个密钥。
查找上限((4 + 1)/ 2)=上限(5/2)= 3(索引编号)
第3个索引值3是中间元素。所以宣传它。 3的左指针指向1 | 2,右指向5。