gpt4 book ai didi

c++ - 二叉搜索树忘记我添加的每个节点

转载 作者:搜寻专家 更新时间:2023-10-31 00:11:29 25 4
gpt4 key购买 nike

我的问题看似简单,却找不到解决办法。我有一个二叉树,这是我的添加函数:

void collection::addToTree(vendor *& item)
{
Node * curr = root;
while (curr)
{
if (strcmp(item->getName(), root->item->getName()) < 0)
curr = curr->left;
else
curr = curr->right;
}
curr = new Node(item);
}

这是我的 Node 构造函数:

collection::Node::Node(vendor *& item) : left(nullptr), right(nullptr)
{
this->item = item;
}

但是,树总是空的,无论我尝试向其中添加什么或多少项目。我能想到的唯一对你们有帮助的另一段代码是我的树的 struct:

struct Node
{
Node();
Node(vendor *& item);
vendor * item;
Node *left, *right;
};
Node * root;

vendor 的所有子变量都有值(正如我在调试器中看到的那样)。我希望我能给你们更多的细节,但这就是我所知道的关于错误的全部信息。非常感谢任何反馈。

最佳答案

add 函数中,您只使 curr 指向新项目,但这不会改变之前的左/右指针,这可能是你的目标是什么。

关于c++ - 二叉搜索树忘记我添加的每个节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33883204/

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