我插入节点二进制搜索树。但它不能正常工作。这是我的代码:我的插入代码在c中无法正常工作
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:struct node有数据,左边,右边。而在这个插入数据和x不一样。 x从用户获取,数据从文件夹获取并插入不同的功能。
'tree = newN;'没有效果。因为'树'是局部变量。 'int add(node * tree,double x,int y){' - >'int adding(node ** tree,double x,int y){'并且有一个路径不返回值。 – BLUEPIXY 2014-11-22 23:56:21