B+树的插入和删除算法被表达成递归算法。例如,在插入代码中,在节点N的父节点有一个插入节点N的调用,当这个调用返回时,当前节点是N的父节点。所以,在B+树的节点中不能维护任何的“父子指针”。这些指针不作为B+树结构的一部分有重要原因,这将在本练习中得到证明。使用每个节点中的父指针(要记住这样的指针不是标准B+树结构的一部分)的另一个方法更简单:使用搜索算法查找合适的叶子节点,然后插入项,必要时进行分裂以及一直到父节点的分裂(使用父指针找到父亲)。
设想这个(令人不满意的)可选方法:
(1)假设一个内节点N被分裂成节点N和N2。对原始节点N的孩子中的父指针发表你的看法。
(2)对节点N的孩子中存在的不一致的父指针给出处理方法。
(3)对于上述每一个建议的方法,说明潜在的缺点。
(4)从这个练习你能得出什么结论?
