【问题标题】:Percentage of red nodes in a red-black tree红黑树中红色节点的百分比
【发布时间】:2017-03-02 00:26:03
【问题描述】:

我将如何找到红黑树中红色节点的百分比?我熟悉红黑树的属性,但似乎无法解决如何处理这个问题。我的一个想法是在构建树并计算红色节点后简单地遍历树,但对于较大的输入似乎效率低下。

【问题讨论】:

  • 抱歉,StackOverflow 不是代码编写或基础教程服务。请访问help center 并阅读How to Ask 以了解如何有效地使用本网站。
  • 您是应该在不构建树的情况下解决这个问题,还是应该先实现红黑树,然后使用您的实现来找出答案?
  • @molbdnilo 我应该首先实现红黑树,我已经完成了。我想到的计算红色节点百分比的一种方法是遍历树并计算红色节点的数量,但这对于较大的 n 值似乎效率低...
  • @JimGarrison 抱歉,我的问题可能措辞不当。我不是要代码,而是要方法来解决在红黑树中找到红色节点百分比的问题。

标签: java algorithm tree percentage red-black-tree


【解决方案1】:

嗯,你可以用时间换空间......

如果在每个子树中存储红色和黑色节点的数量,则只能通过查看根来确定。

这是红黑树的一个属性,您存储在节点中的信息只能通过查看节点的子节点(可能还有它的父节点;我的记忆有点模糊)来更新,这不会影响树操作。
所以你的树构建会更慢,但只是一个常数因素。

如果你只需要确定这个百分比一次,这个因素是否足够小,以至于你在实践中节省任何时间是另一回事。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-13
    • 2014-03-16
    • 2011-09-18
    • 2020-10-03
    • 2015-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多