红黑树的应用

2024-01-01

红黑(RB)树有哪些应用?有没有什么应用程序只能使用RB Tree而不能使用其他数据结构?


A 红黑树 http://en.wikipedia.org/wiki/Red-black_tree是一个特定的实现自平衡二叉搜索树 http://en.wikipedia.org/wiki/Self-balancing_binary_search_tree,今天它似乎是最流行的实现选择。

二叉搜索树 http://en.wikipedia.org/wiki/Binary_search_tree用于实现有限映射,在其中存储一组具有关联值的键。您还可以通过仅使用键而不存储任何值来实现集合。

需要平衡树来保证良好的性能,否则树可能会退化为列表,例如,如果您插入已经排序的键。

搜索树相对于哈希表的优点是您可以按排序顺序有效地遍历树。

AVL树 http://en.wikipedia.org/wiki/Avl_tree是平衡二叉搜索树的另一种变体。在红黑树出现之前它们就很流行。它们更加仔细地平衡,左右子树的高度之间的最大差异为 1(RB 树保证最多为 2)。它们的主要缺点是重新平衡需要付出更多努力。

所以红黑树当然是一个不错的选择,但不是这个应用程序的唯一选择。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

红黑树的应用 的相关文章

随机推荐

  • PHP 中的共享内存文件

    I use openssl pkcs7 sign and openssl pkcs7 encrypt创建加密数据 这些函数仅接受文件名 我想将临时文件存储在共享内存中以提高性能 我明白在 Linux 中我可以file put content
  • Firefox 中与 JavaScript 事件相关的 F5 和 Ctrl-F5 有什么区别?

    When you try this public page http slim nl shop default aspx http slim nl shop default aspx update meanwhile this site h
  • 如何在工具提示中显示图像?

    当您将鼠标放在链接上时 我想在工具提示中显示图像 我正在使用 HTML CSS 和 JAVASCRIPT JQUERY 我将图像保存在一个文件夹中 因此我从本地主机引用它 我尝试通过 JQuery 设置工具提示的内容 document re
  • Net Core 2 - 实体框架:更新不同环境的数据库

    FACTS net核心2 0项目 实体框架 代码优先 不同环境的不同appsettings json文件 我利用包管理器控制台生成数据库脚本 添加迁移 更新数据库 如果我运行 PM gt Get DbContext 它会带回从我的 apps
  • Blazor 组件:当模型从子组件更新时刷新父组件

    我在 ASP NET Core 3 预览版 4 中使用服务器端 Blazor 组件 我有一个父组件和子组件 使用相同的共享模型 如下所示 Model public class CountModel public int Count get
  • 检查字符串是否包含 Velocity 中的特定子字符串

    在 Velocity 中 我有一个名为 url 的变量 其中包含以下字符串 ContentId 2 7507 ContentId 2 7508 ContentId 1 44551 我想检查该字符串是否包含子字符串 1 44551 这是我到目
  • 从 MTKView 创建的 UIImage 会导致颜色/不透明度差异

    当我将 MTKView 的内容捕获到 UIImage 中时 生成的图像看起来有质量上的不同 如下所示 我用来生成 UIImage 的代码如下 let kciOptions kCIContextWorkingColorSpace CGColo
  • Material UI - 禁用 DataGrid 中的多行选择

    我想阻止 Material UIDataGrid多个复选框部分 当我选择复选框部分时 应选择特定行 而其他行保持未选中状态 我尝试过disableMultipleSelection选项 但它不起作用
  • 无法从 Android Studio Assistant 连接到 Firebase

    我尝试从 Android Studio Assistance 连接到 Firebase 但尽管有互联网连接 但仍出现以下错误 当您达到 FireBase 上 FireBase 允许您为每个 FireBase 帐户创建的项目总数限制时 就会出
  • 更改循环内的变量名称

    我正在尝试创建一个循环 该循环将创建一个新变量 但也会自动更改变量的名称 例如自动增加值 不确定这是否可能 因为你不能有动态变量 if cin get n m Add an integer to m string 1 m Trying to
  • 无法使用jdk8和netbeans 8打开Web服务测试器页面

    我编写了一个简单的 Web 服务程序 但无法在 glassfish 4 0 Web 服务器上测试它 当我测试 Web 服务时 我看到以下消息 确保服务已成功部署 并且服务器正在运行 我可以在 glassfish Web 服务器上部署的 We
  • 调用成员过程 NULL SELF 参数 Oracle

    我有一个类型myType用成员过程声明insert obj 当我尝试这段代码时 出现以下错误 declare v obj myType begin v obj insert obj 1 2 3 end ORA 30625 method di
  • 找不到模块,webpack 别名与 typescript React

    我正在尝试在 webpack 中实现一些别名 我想要做的是 不要使用它从组件文件夹导入 App js 上的组件 components layout Header Header 我要这个 components layout Header He
  • 为什么 \R 在 Java 8 和 Java 9 之间的正则表达式中表现不同?

    以下代码可在 Java 8 和 9 中编译 但行为不同 class Simple static String sample nEn un lugar r nde la Mancha nde cuyo nombre r nno quiero
  • 如何唤醒应用程序

    是否可以每隔一段时间唤醒一个应用程序x分钟 以便应用程序可以在后台执行某些操作 所以该应用程序停留在后台 不 iOS SDK 不支持此类行为
  • 如何 ping Android 服务中的 URL?

    如何使用 Android 服务进行 ping 回调 我需要通过单击按钮打开网页 但在后台 ping 另一个 URL 以进行统计信息收集 我想如果你只想 ping 一个 url 你可以使用以下代码 try URL url new URL ht
  • SymPy 自动处理表达式

    我一直在使用 SymPy 将表达式转换为乳胶 然后由 Matplotlib 渲染 例如 from sympy import latex sympify from sympy abc import x str 2 x 3 x TeX late
  • 从 unity 发送请求时 file_get_contents 返回 null

    我正在 PHP 中处理 post 请求数据 header Access Control Allow Origin header Content Type application json charset UTF 8 header Acces
  • 在 JavaScript 中扩展

    有人可以帮我理解这段代码吗 对我来说似乎太复杂了 var extends this extends function d b function this constructor d prototype b prototype d proto
  • 红黑树的应用

    红黑 RB 树有哪些应用 有没有什么应用程序只能使用RB Tree而不能使用其他数据结构 A 红黑树 http en wikipedia org wiki Red black tree是一个特定的实现自平衡二叉搜索树 http en wik