我观察到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树应该是平衡的树木?
感谢。
答案 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)具有以下限制:
所有非根节点至少有[m / 2]个元素。
所有叶子都在同一高度。
有了这两个限制,有效的B-Tree被证明具有O(logn)高度。
答案 2 :(得分:0)
我观察到2-3-4树的高度可能会有所不同,具体取决于节点的插入顺序。
2-3-4树的插入算法在途中分裂4个节点""到叶节点,因为他们不能采取另一个项目。这允许插入一次完成,树保持平衡。