-1

此用于在二叉搜索树中搜索值的代码无法完全运行。

struct 节点具有 int 数据和 struct *lc,*rc 作为其成员。

*r是一个结构节点类型的全局变量。

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 的任何元素。程序应返回指向找到的节点的指针。

4

1 回答 1

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
}
于 2013-09-14T14:53:13.000 回答