Algorithm 卡在B-树形成的算法中,确切的算法是什么?

Algorithm 卡在B-树形成的算法中,确切的算法是什么?,algorithm,data-structures,tree,b-tree,Algorithm,Data Structures,Tree,B Tree,我在学习B-树。在站点中给出的在B-树中插入数据的主题中,我使用这些数据构建了二叉树:59371198604。到步骤9为止,我可以理解插入过程,但在步骤10中,为什么我们不能以常规方式插入4 它说,我们还必须检查是否有进一步的插入。因此,何时以及如何确保进一步插入能够完美工作。具体的算法是什么 第10步的描述中说“最好是4加3,但B-树算法要求我们分割整个根”。这当然完全是胡说八道 B-树算法不需要这样的东西,但是一些简化的算法——比如页面作者使用的算法——要求执行某些不必要的拆分和合并,这样就

我在学习B-树。在站点中给出的在B-树中插入数据的主题中,我使用这些数据构建了二叉树:
59371198604
。到步骤9为止,我可以理解插入过程,但在步骤10中,为什么我们不能以常规方式插入
4


它说,我们还必须检查是否有进一步的插入。因此,何时以及如何确保进一步插入能够完美工作。具体的算法是什么

第10步的描述中说“最好是4加3,但B-树算法要求我们分割整个根”。这当然完全是胡说八道

B-树算法不需要这样的东西,但是一些简化的算法——比如页面作者使用的算法——要求执行某些不必要的拆分和合并,这样就可以部分实现完整的B-树算法

特别是,当拆分较低级别的节点时,这可能会导致树中更高级别的节点进一步拆分,因为每次拆分都会向上推一个分隔键。在极端情况下,拆分节点上方的每个级别也可以拆分,甚至可以拆分根

有效地处理这一点会对锁定产生影响,并且需要记住从根节点到发生插入/拆分的节点的初始下降过程中的路径

一方面,这意味着简单的递归函数调用不再有效,因为通常不可能向上遍历调用堆栈。这还意味着从根节点到插入目标节点的整个路径需要在并发情况下锁定(对于幼稚的实现),或者至少锁定从最低父节点到目标节点的子路径

简单的逃避通过在向下的过程中执行额外的重组来实现,以确保树中进一步向下的更改不会向上冒泡。从B-树的角度来看,这些重组是不必要的,但对于简化战略的完整性来说是必要的

在插入op的下降过程中,需要拆分在下降过程中遇到的所有完整节点。在删除操作的下降过程中,需要合并至少不能提供一个密钥的所有节点。是的,这意味着某些插入和删除序列可能会导致每项操作都会对树进行大量不必要的重组,从而抵消B-树方案的主要优势(结构管理成本的摊销)