代码之家  ›  专栏  ›  技术社区  ›  tony19 RuNpiXelruN

为什么在插入2-3-4树时节点会分裂?

  •  5
  • tony19 RuNpiXelruN  · 技术社区  · 12 年前

    在所描绘的 2-3-4 tree 以下(来自 Data Structures & Algorithm in Java, 2nd ed ),为什么插入 99 导致的节点拆分 83/92/104 当它看起来像 99 可以插入到正确的孩子( C 孩子,之后立即进入现场 97 )而不进行任何拆分?

    enter image description here

    2 回复  |  直到 12 年前
        1
  •  2
  •   xan    12 年前

    在C中插入99是可以的,因为它可以保持所有的不变量,但如果插入总是在向下扩展4个节点,那么算法通常会更简单。然后,总会有空间进行任何必要的提升和旋转。比较C本身已经是4节点的情况可能会有所帮助。

        2
  •  0
  •   Markus Mikkolainen    12 年前

    保持树的平衡,保证性能。插入是递归的,它会碰到一个4节点(具有3个值和4个子节点),这将导致进行拆分。