问题标签 [red-black-tree-insertion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
482 浏览

algorithm - 红黑树插入

我在红黑树中插入了节点 36,结果如下红黑树:

在此处输入图像描述

我的问题是在这种特殊情况下如何处理双红?是案例2还是3?

0 投票
1 回答
256 浏览

algorithm - 排序值的红黑树插入操作的行为

我是数据结构的新手。我已经完成了红黑树插入算法的实现。我无法理解,算法如何处理排序值的插入。

让我用数据集 [10, 5, 2] 来说明。

因此,Initial 10 将被插入,并将成为树的根,其颜色将为黑色。10在此处输入图像描述

接下来,我们将在根 10 下添加 5。5 的颜色将为红色(截至目前,它不违反任何属性)。 在此处输入图像描述

现在,我们将添加添加 2。添加后,树将如下所示:- 在此处输入图像描述 添加 2(其颜色为红色)将违反不允许红色父级下的红色子级的规则。红黑树中有 3 种情况:- 所有三种情况都假设 parentOf(newlyInsertedNode) 有兄弟姐妹。但在我的情况下, parentOf(2) = 5 没有兄弟姐妹。那么,红黑树算法将如何处理这种情况。

0 投票
2 回答
420 浏览

c++ - 红黑树插入代码显示分段错误 11

当我输入数字时,这显示分段错误 11。请帮忙。我已经被困在这两个小时了。我尝试了很多东西,但无法通过它。请帮忙。可能是 rbInsert 或旋转功能有问题,但我找不到。非常感谢任何帮助。

0 投票
1 回答
760 浏览

c - 红黑树插入代码

我正在尝试为自己的学习编写一个红黑树的实现,我已经盯着这个看了几天了。

谁能帮我弄清楚如何让双旋转箱正常工作?如果您在浏览这些片段时发现了其他任何令人讨厌的东西,请随时让我觉得自己像个白痴。

感谢您的帮助。

再平衡功能

相关职能

旋转函数

RBT 定义

0 投票
1 回答
243 浏览

algorithm - 将节点插入红黑树时,如果叔叔是黑人,父母是黑人怎么办?

我知道在插入新节点时,有两种情况,叔叔在红黑树中是黑色的。但在所有情况下,父母都是红色的。如果父母是黑人,则没有违规。在这种情况下,我该怎么办?

0 投票
1 回答
78 浏览

red-black-tree-insertion - 红黑树插入任务

我想问我应该按什么顺序添加元素:1、2、3、4、5、6、7,这样树就会完全平衡,根节点的子节点应该是红色的。

0 投票
1 回答
72 浏览

c++ - 红黑树无效转换

我无法通过红黑树的初始化。每当我编译时,都会出现以下错误。

我也无法搜索树以确保树中没有值。我可以想到的当前方法,但我仍然在我的树中得到重复的结果。

它在插入功能下。这可能是我声明变量的方式吗?我们应该遵循某个模板,它说要制作 xa 新的 nodeType 但我不能。删除它会导致程序出现段错误。

0 投票
2 回答
340 浏览

java - 红/黑树节点插入的异常Java实现

我正在用 Java 编写一个关于红/黑树的类程序。我对它们通常的工作方式有很好的了解,并且应该使用递归插入方法。我通常会使用以下内容,以匹配我教授的 Node 课程。关于颜色,a 0 是黑色,a 1 是红色。给我们的 Node 类根本不处理键。

然而,问题在于我们应该返回一个布尔值——如果用户插入了树上已经存在的重复值,我们将返回 false 并且不附加节点。否则,我们附加它们并返回 true;为此提供给我们的代码如下,但不是递归的(项目要求的一部分)。虽然我没有实现平衡或正确旋转的方法,但返回的布尔部分有效。

我无法在网上找到任何类似的实现,似乎布尔值对于程序的 gui 正常工作是必要的。如果有人对从哪里开始有很好的建议,我将不胜感激!

0 投票
1 回答
284 浏览

data-structures - BST 和 RBT 插入更坏的情况

RBT 和 BST 的插入复杂度为 O(logn)。我已经用 Java 实现了它们,并给了它们很多数字,并以秒为单位测量了时间来分析性能。我绘制的数字似乎表明它是 O(n)。任何人都可以考虑一下并评论为什么会这样?

0 投票
1 回答
149 浏览

c - 红黑树“校正”期间的分段错误(核心转储) - C

代码如下:

编程直到“插入”功能运行没有问题。当我将修复功能(在插入功能中)和所有实现红黑树属性的功能添加到我的数据结构时,发生了分段错误。

R&B 校正(或平衡,如果你喜欢)算法主要来自这里

重要编辑:

使用调试器让我得到了 getUncle 函数,我认为那里发生了分段错误。我的预测是它不能返回“叔叔”,因为它靠近根。因此,当数组开头的信息存储在树中或平衡达到树的如此高时,我有一个问题......有什么想法吗?