2-3-4树高不平衡

时间:2013-05-02 01:20:26

标签: data-structures tree 2-3-4-tree

我观察到2-3-4树的高度可能会有所不同,具体取决于节点的插入顺序。

e.g。 1,2,3,4,5,6,7,8,9,10将产生一棵高度为2的树

按此顺序插入时:

e.g。 1,5,10,2,3,8,9,4,7,8将产生一棵高度为1的树

这是2-3-4树的正常属性吗?在这种情况下,按顺序插入节点将产生非常不平衡的树。我以为2-3-4树应该是平衡的树木?

感谢。

3 个答案:

答案 0 :(得分:0)

2-3-4树确实是“平衡的”树,因为树的高度永远不会超过相对于节点数量的固定界限(如果每个节点中只有两个值,则为O) (log n))。这里的术语“平衡”应该与“不平衡”形成对比,“不平衡”是一种树,其中高度相对于节点数“大”。例如,这棵树高度不平衡:

1
 \
  2
   \
    3
     \
      4
       \
        5
         \
          6

我认为你假设“平衡”一词意味着“尽可能紧凑”,但实际情况并非如此。绝对有可能在2-3-4树中产生多个不同的插入顺序,产生不同高度的树木,其中一些树木的高度低于其他树木。但是,与树中节点的总数相比,可实现的最大可能高度并不太大,因此2-3-4树确实被认为是平衡树。

希望这有帮助!

答案 1 :(得分:0)

平衡树通常意味着它的高度为O(logn)。

vaild B-Trees(包括2-3-4 Tree)具有以下限制:

  1. 所有非根节点至少有[m / 2]个元素。

  2. 所有叶子都在同一高度。

  3. 有了这两个限制,有效的B-Tree被证明具有O(logn)高度。

答案 2 :(得分:0)

  

我观察到2-3-4树的高度可能会有所不同,具体取决于节点的插入顺序。

2-3-4树的插入算法在途中分裂4个节点""到叶节点,因为他们不能采取另一个项目。这允许插入一次完成,树保持平衡。