gpt4 book ai didi

c++ - 红黑树插入 - 递归问题 - C++

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:29:42 26 4
gpt4 key购买 nike

我有一个在红黑树中实现的递归插入方法。从递归调用返回后,我试图查看本地根的 child 是否为红色。但实际发生的是我正在检查树的根,而不是子树(最近插入发生的地方)。

这是我正在查看的位于 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++ - 红黑树插入 - 递归问题 - C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13855717/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com