插入2-3树

时间:2013-07-03 18:23:46

标签: data-structures tree

我不确定我是否正确理解2-3树的插入过程。说我有树:

Original Tree

我想将值95插入其中,这是否是适当的新树?

enter image description here

3 个答案:

答案 0 :(得分:1)

是的,这是正确的。

插入95会将3个孩子放在最右边的叶子中(不允许)

        40 
      /    \
    20     60, 80
   / \     /   | \
 10  30   50  70 90,95,100 <- not valid

叶子中的3个节点使95移动到父节点,但现在父节点中有3个节点:

        40 
      /    \
    20      60,80,95 <- not valid
   /  \     /   |  \
  10  30   50  70 90,100

向上移动95会导致父节点分裂:

        40 
      /    \
    20       80
   /  \    /    \
  10  30  60     95
          / \   /  \
        50  70 90  100 valid

答案 1 :(得分:0)

这是不正确的。 2-3树的高度是一致的,因此你将分裂父母而不是孩子。

答案 2 :(得分:0)

我认为你错了。你违反了一个关于2-3树的事实:所有的树叶都有相同的深度。 参考: http://pages.cs.wisc.edu/~vernon/cs367/notes/10.23TREE.html#operations

这是我想到的插入痕迹:

enter image description here

如果这不正确,请告诉我。