此二进制搜索树中的值搜索代码无法正常运行。
struct节点有int数据和struct * lc,* rc作为其成员。
此处*r
是struct node类型的全局变量。
struct node * searchbt(struct node*bn,int x)
{ if(bn==NULL)
{printf("Element not found.\n");}
if(bn->data==x) {printf("Element found.\n"); r=bn; return r;}
if(bn->data<x) {searchbt((bn->lc),x);}
else {searchbt((bn->rc),x);}
}
此代码用于搜索编译但在运行时失败以搜索正常运行的BST的任何元素。程序应返回指向找到的节点的指针。
答案 0 :(得分:2)
struct node * searchbt(struct node*bn,int x)
{ if(bn==NULL)
{printf("Element not found.\n"); return bn;} //return bn
if(bn->data==x) {printf("Element found.\n"); return bn;} //Just return bn
if(bn->data<x) {return searchbt((bn->lc),x);} // <- Add return
else { return searchbt((bn->rc),x);} //<- Add return
}