【问题标题】:Where red-black trees are useful [duplicate]红黑树在哪里有用[重复]
【发布时间】:2012-02-04 14:24:34
【问题描述】:

可能重复:
Red-Black Trees

我开始在麻省理工学院的红黑树上观看lecture,15 分钟后放弃了。

当然,我没有看过前 10 节课,但为什么在进入理论之前没有真实世界的例子?

有人可以举个例子解释一下为什么红黑树是一种基本的数据结构吗?

【问题讨论】:

    标签: data-structures


    【解决方案1】:

    红黑树是自平衡的,因此可以在 O(log n) 时间内插入、删除和搜索。其他类型的平衡树(例如 AVL 树)的插入和删除操作通常较慢。

    此外,红黑树的代码往往更简单。

    它们非常适合创建地图或关联数组以及专用数据存储。我在高速电信应用程序中使用了一个来实现成本最低的路由系统。

    【讨论】:

      【解决方案2】:

      注意:我没看过讲座。

      红黑树是在添加或删除项目时自平衡的二叉搜索树。此功能保证此树中的每个搜索都具有O(logn) 复杂性。

      如果你在不平衡的情况下构造一棵树,则可以创建一个退化的树,它实际上是一个具有O(n) 复杂度的链表。

      【讨论】:

        【解决方案3】:

        Wikipedia 表示“自平衡二叉搜索树”。

        “简单地说,红黑树是一种二叉搜索树,它的插入和删除方式始终保持树的合理平衡。”

        当数据恰好被排序时,这会有所帮助。如果没有平衡,树就会变成链表。

        【讨论】:

          【解决方案4】:

          Wikipedia 提供了一个解释和一个重要的例子。

          红黑树为插入时间、删除时间和搜索时间提供最坏情况的保证。这对于实时应用程序非常有用。

          一个真实的例子是 Linux 内核中的完全公平调度器。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2010-09-06
            • 2015-11-17
            • 2011-04-23
            • 2016-07-05
            • 2011-09-18
            • 2011-02-04
            • 2018-10-10
            • 2011-03-11
            相关资源
            最近更新 更多