B树的添加
B 树的扩充过程与寻常的平衡二叉树不同。其他二叉树的扩充是从根节点出发,逐渐往下扩充。而 B 树则是从下往上进行扩充。
def
插入操作是指插入一条记录,即(key, value)的键值对。如果B树中已存在需要插入的键值对,则用需要插入的value替换旧的value。若B树不存在这个key,则一定是在叶子结点中进行插入操作。
基本步骤
- 根据要插入的key的值,找到叶子结点并插入。
- 判断当前结点key的个数是否小于等于m-1,若满足则结束,否则进行第3步。
- 以结点中间的key为中心分裂成左右两部分,然后将这个中间的key插入到父结点中,这个key的左子树指向分裂后的左半部分,这个key的右子支指向分裂后的右半部分,然后将当前结点指向父结点,继续进行第3步。
演示
![[2024-05-10 22-58-00.mp4]]
我们可以用以下网站进行自定义的动态演示:
B-Tree Visualization (usfca.edu)
我们需要特别注意的是:
- B 树添加节点时分裂的过程。分裂的过程是将中间元素送往父节点,将该节点分裂成两部分的过程。
- 当关键字个数为 m 时会发生分裂;