首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >2-3-4树高不平衡

2-3-4树高不平衡
EN

Stack Overflow用户
提问于 2013-05-02 09:20:26
回答 3查看 302关注 0票数 1

我观察到,根据节点插入的顺序,2-3-4树的高度可能会有所不同。

例如,1,2,3,4,5,6,7,8,9,10将产生高度为2的树

按此顺序插入时:

例如,1,5,10,2,3,8,9,4,7,8将产生高度为1的树

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

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-02 11:54:26

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

代码语言:javascript
复制
1
 \
  2
   \
    3
     \
      4
       \
        5
         \
          6

我认为您假设术语“平衡”意味着“尽可能紧凑”,但事实并非如此。在2-3-4树中使用多个不同的插入顺序来生成不同高度的树是完全可能的,其中一些树的高度会比其他树低。然而,与树中的总节点数相比,可实现的最大可能高度并不太大,因此2-3-4树确实被认为是平衡树。

希望这能有所帮助!

票数 0
EN

Stack Overflow用户

发布于 2013-05-02 12:55:02

一棵平衡的树通常意味着它的高度是O()。

有效的B-树(包括2-3-4树)有以下限制:

  1. 所有非根节点至少有m/2个元素。
  2. 所有叶子的高度相同。

有了这两个限制,证明了一个有效的B-树具有O(logn)个高度。

票数 0
EN

Stack Overflow用户

发布于 2014-09-03 23:54:40

I观察到,根据节点插入的顺序,2-3-4树的高度可以不同。

2-3-4树的插入算法将4个节点“在途中”拆分到叶节点,因为它们不能接受另一个项目。这使得插入可以在一次通过中完成,并且树保持平衡。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16328913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档