【问题标题】:Maximum number of red nodes in red black tree [closed]红黑树中的最大红色节点数[关闭]
【发布时间】:2014-03-16 04:10:21
【问题描述】:

a red-black treen 节点中,红色节点的最大数量是多少(假设根为黑色)?

O(n)吗?

【问题讨论】:

  • O(n) 是(或至少看起来是)相当懒惰的猜测。向我们展示您为确定这一点而遵循的论点。一点可视化(画树,给节点上色)应该可以帮助你。您可能会在某个时候陷入困境,但这就是我们来这里的目的,而不是为您考虑。

标签: algorithm red-black-tree


【解决方案1】:

如果树有n 节点并且根是黑色的,那么左边有n - 1 节点和n - 1 = O(n),所以你是对的。

如果你想更准确地统计/绑定树中红色节点的数量,你必须知道那棵树的拓扑结构。

例如,如果树是一棵完全二叉树,根据红黑树的定义,它可以完全没有红色节点。

【讨论】:

  • @Dukeling 是的,在我的第一句话中,我写了最大值是 O(n)
  • 红黑树中,红色节点不能有红色子节点,所以不能有n-1红色节点(除非n <= 3)。
  • @Dukeling 是的,当然,但O(n) 并不意味着n - 1。我的意思是,每个小于或等于n - 1 的数字都是O(n)
  • 是的,但是您的回答听起来很像可以有 n-1 个红色节点。并且可能存在更紧密的界限(这就像说合并排序需要 O(n^2) 时间),或者可能向 OP 提出问题的人正在寻找一个确切的值,而不是大 O。最大值是所有拓扑中的最大值,所以你不必知道。你的最后一段对于这个问题基本上没有意义,因为这个问题要求的是最大值。
猜你喜欢
  • 1970-01-01
  • 2017-03-02
  • 2014-01-13
  • 2013-10-21
  • 2020-11-29
  • 2017-02-10
  • 2011-09-18
  • 1970-01-01
  • 2020-10-03
相关资源
最近更新 更多