如何解决二叉搜索树-添加节点
| 我构建了一个函数,该函数需要将一个节点添加到按其ID(moviecode = id)排序的二叉搜索树中,但是它不能正常工作。您能帮我弄清楚代码有什么问题吗?Node *buildtree(Node *dataTree,char *name,int id,float rating,int numvote) {
if ((dataTree == NULL)) {
dataTree= make_node();
strcpy(dataTree->data.movieName,name);
dataTree->data.meanRaiting = rating;
dataTree->data.numOfVoters = numvote;
dataTree->data.movieCode = id;
return;
}
else if (dataTree->data.movieCode > id)
(buildtree (dataTree->left,name,id,rating,numvote));
else
buildtree (dataTree->right,numvote);
return dataTree;
}
解决方法
乍一看,在我看来好像dataTree已实例化,但它没有附加任何内容。您应该有一个指向新对象的指针,否则它将在方法结束时丢失。
大多数人在这种情况下要做的就是传递双指针。当您需要修改指针时,只需执行
*dataTree = make_node();
有帮助吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。