Binary Search Tree で値を検索するこのコードは、完全には機能していません。
構造体ノードは、メンバーとして int データと構造体 *lc,*rc を持ちます。
これはタイプstruct *r
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 の要素を検索するのに失敗します。プログラムは、見つかったノードへのポインターを返すことが期待されます。