繁体   English   中英

从B树中删除节点

[英]Deleting a node from B tree

最小密钥数= 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 . Cormen Introduction to Algorithms by thomas H . Cormen pg。 没有501

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

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

                            P

              CL                           TX
       AB    EJK    NO               QRS    UV    YZ 

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

请解释一下。

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

为了确保算法每次都有效,我们决定合并具有最小键(但合法)的单元格。 那是因为如果叶子需要父母“捐赠”,他们的父母就能提供。

注意:我说“离开”以简化事情,但它也适用于沿途的每个细胞。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM