gpt4 book ai didi

C++ 树无法插入值

转载 作者:行者123 更新时间:2023-11-30 05:21:14 29 4
gpt4 key购买 nike

这段代码是我写的。但它不插入和打印值。谁能检查并告诉问题?

struct Node{

int value;
Node* left;
Node* right;
};

class Tree {

Node* root;

public:
Tree insertNode( Node* tree,int val)
{
if(tree==NULL)
{
tree = new Node;
tree->value=val;
tree->left=NULL;
tree->right=NULL;

}
else if (val<=tree->value){
insertNode(tree->left,val);
}
else
{
insertNode(tree->right,val);
}

return *this;
}


insert(int val)
{
insertNode(root, val);

}

void printTree(Node* root)
{


if(!root)
{
cout<<"Tree is empty"<<endl;
return;
}

printTree(root->left);
cout<<root->value;
printTree(root->right);


}


print()
{
printTree(this->root);
}


};



int main(){


Tree* Nodd = new Tree();
Nodd->insert(12);
Nodd->insert(10);
Nodd->print();


}

当我运行这个程序时,只需在 insertNode 函数的第一个 if 语句中运行。我想,我错过了什么,做错了什么。

最佳答案

Tree insertNode( Node* tree,int val)在此函数中,您应该通过引用传递节点指针以便能够修改节点,因此正确的参数是
树 insertNode( Node* &tree,int val)

关于C++ 树无法插入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40292655/

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