B-树暂记:非根非叶节点至少有 m2上取整 个分支

    科技2022-07-13  145

    B-树的建立、插入和删除结点的过程

    多路平衡查找树

    目标:多叉 有序 平衡

    两个叉一个关键字的叫二叉树
    m个叉m-1个关键字的树就是m叉树

    顺序仍然是左小右大

    根 节 点 至 少 有 两 个 分 支 根节点至少有两个分支 非 根 非 叶 节 点 至 少 有 ⌈ m / 2 ⌉ 个 分 支 非根非叶节点至少有 \lceil m/2 \rceil个分支 m/2 因为叶子结点不包含关键字,所以可以把叶子结点看成在树里实际上并不存在外部结点,指向这些外部结点的指针为空,叶子结点的数目正好等于树中所包含的关键字总个数加1。

    添加节点

    插入节点时当个数大于m-1时: 将 ⌈ m / 2 ⌉ 位 置 的 元 素 “ 提 ” 出 来 ( 将 左 侧 与 右 侧 的 关 键 字 分 别 装 在 新 的 节 点 中 ) 将 \lceil m/2 \rceil 位置的元素“提”出来\\(将左侧与右侧的关键字分别装在新的节点中) m/2() 当前层分解,传入上一层(可能产生连锁反应) 插入元素8 拆分上移

    上部分超过三叉树的元素限制,连锁反应

    删除节点

    删除的节点是“终端”节点

    1.直接删除

    2.兄弟够借

    3.兄弟不够借

    合并操作:

    删除的节点为非终端节点

    如果子树元素都为1: 将要删除节点用其前驱或后继替代(位置替换),然后删除

    Processed: 0.009, SQL: 8