【问题标题】:why can't a 2-3 tree "allow" degree 1为什么 2-3 树不能“允许” 1 级
【发布时间】:2016-01-03 16:24:57
【问题描述】:

我一直在努力解决的一个问题... 为什么 2-3 树的实现不允许节点的度数为 1?

我认为它可能与它(作为 B 树家族的成员)想要保留的 O(log(n)) 有关,如果允许 1 级,我们可以得到这样的树:

1
 \
  2
   \
    3
     \
      4
       \
        5

例如,然后某些操作将采用 O(n) 而不是 O(log(n)) 但我没有看到我在这个答案中提到了 2-3 树以及为什么它不能允许 1 级... :-/

谢谢! ;-)

【问题讨论】:

  • 原则上,您可以允许多个 1 度节点以常数为界(甚至以 O(log n) 为界),而不会丢失渐近对数深度。但是 2-3 棵树,好吧,不要。

标签: data-structures tree binary-tree balance


【解决方案1】:

你已经有了正确的答案,但也许你想这样说:

B-tree 变体将所有叶子保持在相同的深度(树 高度),并且操作通常需要与此成正比的时间 高度。

由于内部节点必须至少有 2 个子节点,每个 级别包含至少两倍于父级别的节点,并且 树的高度是 O(log N)。

如果允许内部节点包含 少于 2 个孩子,身高可能超过 O(log N) 并且 操作将花费比对数时间更长的时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-25
    • 1970-01-01
    • 2010-10-02
    • 2015-10-05
    • 2011-05-12
    • 2017-07-10
    • 1970-01-01
    相关资源
    最近更新 更多