删除B树节点

Deleting a node from B tree

本文关键字:树节点 删除      更新时间:2023-10-16

min no of keys = 2最大键数= 5

                            P
              CL                           TX
       AB    DEJK    NO               QRS    UV    YZ   

删除键D:

                    CLPTX
       AB    EJK    NO   QRS    UV    YZ  

这个答案是根据Introduction to Algorithms by thomas H . Cormenp . no 501

它说:这是情况3b:递归不能下降到节点CL因为它只有两个键所以我们需要将p下推并将其与CL和TX合并形成CLPTX n我们从叶子(情况1)中删除D

但我认为这个答案也很好:

                            P
              CL                           TX
       AB    EJK    NO               QRS    UV    YZ 

因为叶节点EJK仍然有3个键满足最小键约束。

请解释一下

删除算法是从上到下,因此它无法知道叶子是否足够。

为了确保算法每次都有效,决定从顶部开始合并具有最小键值(但合法)的单元格。这是因为如果树叶需要父母的"捐赠",他们的父母将能够提供它们。

注意:我说"叶子"是为了简化,但它也适用于沿途的每个细胞。

note2:这就是为什么在insert中你做相反的事情,即使在特定的情况下你可能不需要。