红黑树插入 - 递归问题 - C++
Red-Black Tree Insert - Recursion Issue - C++
我有一个递归插入方法,该方法正在红黑树中实现。从递归调用返回后,我正在尝试查看本地根的子根是否为红色。但实际发生的是,我正在检查树的根,而不是子树(最近插入发生的地方)。
这是我正在查看的代码片段,位于 insertNode 方法中:
this->insertNode(root->right, value);
if(root->right->is_red) {
cout << "color again & " << root->data << endl;
root->right->is_red = false;
root->is_red = true;
this->rotateLeft(root);
}
如何在最后一次插入的子树的根上进行操作?在我从递归调用返回之前,我是否需要确保完成此操作?
修改 insertNode,使其返回实际插入的节点。插入后,您将能够轻松访问其父节点(假设该节点知道其父节点)。
相关文章:
- 通过递归进行因子分解
- 递归函数计算序列中的平方和(并输出过程)
- 使用递归的数组的最小值.这是怎么回事
- 递归列出所有目录中的C++与Python与Ruby的性能
- 递归计数给定目录的文件和所有目录
- 如何在BST的这个简单递归实现中消除警告
- C++:正在检查LinkedList中的回文-递归方法-错误
- 递归模板化函数不能分配给具有常量限定类型"const tt &"的变量"state"
- 递归无序映射
- TSP递归解的迭代形式
- 如何在Elixir中调用递归函数并行
- 返回递归调用和仅递归调用的区别
- 数组元素打印的递归方法
- 使用递归时获取变量的奇怪值
- 如何在C++中递归地按相反顺序打印集合
- 到连接组件算法的问题(递归)
- 如何使用递归打印修改后的星号三角形图案
- 使用递归模板动态分配的多维数组
- 递归函数有效,但无法记忆
- 包含模板文件的递归会导致编译失败