gpt4 book ai didi

c++ - 用指针构建树

转载 作者:行者123 更新时间:2023-11-28 08:16:10 25 4
gpt4 key购买 nike

我正在尝试创建一个将键结构插入到树中的函数。该函数正确设置根,但在使用另一个键再次调用时不会设置分支。这是代码:

树.h:

class tree{

key *tree_root;

public:
tree();
//Constructor

void treedestroy(key *root);
//Tree destructor helper

~tree();
//Destructor

void insert(key* root, key *newkey, int disc);

};

从树类中插入函数:

void tree::insert(key *root, key *newkey, int disc){
if (root == NULL){
root = newkey;
return;
}
if (newkey->cord[disc] <= root->cord[disc])
insert(root->left, newkey, (disc+1)%4);
else if (newkey->cord[disc] > root->cord[disc])
insert(root->right, newkey, (disc+1)%4);
}

我对 C++ 指针有点缺乏经验,想知道如何修复这段代码,以便它正确地填充树?

最佳答案

我不完全确定你在这里的方法,但为了帮助你站起来,使用函数签名会有所帮助:

void insert(key*& root, key *newkey, int disc);

这通过引用传递根指针,这意味着在函数内部所做的更改将“坚持”到您传入的变量。

您的函数本身会修改函数局部变量,而不会传播这些更改。

This article是一本平衡而快速的引用文献(我不能说它是不是最好的——它只是我发现的第一个像样的)

关于c++ - 用指针构建树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7730960/

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