【发布时间】:2014-11-22 23:47:57
【问题描述】:
我将节点插入二叉搜索树。但它不能正常工作。这是我的代码:
int adding(node * tree,double x,int y)
{
node *newN;
if(!tree)
{
newN=(node*)malloc(sizeof(node));
newN->data=x;
newN->totalval=y;
newN->right=NULL;
newN->left=NULL;
tree=newN;
return 1;
}
if(x < tree->data)
{
adding(tree->left,x,y);
}
if(x==tree->data)
{
printf("This data is already existed. Please try again");
return 0;
}
if(x> tree->data)
{
adding(tree->right,x,y);
}
}
P.S:结构节点有数据,左,右。并且在这个插入数据中和 x 不一样。 x 是从用户那里获取的,数据是从一个文件夹中获取的并插入到不同的函数中。
【问题讨论】:
-
tree=newN;无效。因为tree是局部变量。int adding(node * tree,double x,int y){-->int adding(node ** tree,double x,int y){并且有一个不返回值的路径。