这是c中没有给我解决方案的功能
struct node* serch(struct node *ptr,int x)
{
if(ptr->data==x)
{
printf(" root of tree itself ");
}
else
{
struct node *ptr1,*ptr2;
ptr1=ptr->left;
ptr2=ptr->right;
while((ptr1->data!=x)&&(ptr2->data!=x))
{
if(ptr->data>x)
{
ptr=ptr1;
ptr1=ptr->left;
ptr2=ptr->right;
}
else if(ptr->data<x)
{
ptr=ptr2;
ptr1=ptr->left;
ptr2=ptr->right;
}
}
return ptr;
}
}
代码适用于具有两个子节点的节点(特别是在树平衡的水平上工作正常)但在此之后它不起作用并且给出错误
parentnode.exe已停止工作,Windows正在检查解决方案。
答案 0 :(得分:0)
你有几个错误
你没有为案件ptr->data==x
返回一些内容。你的c编译器应该发出警告,不是所有路径都返回一个值。
您没有检查空值