数据结构查找的相关实现
#include<stdio.h>
#include<stdlib.h>
#include <T,e>
typedef int KeyType;
typedef struct BiTNode
{ KeyType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
BiTree CreateBST(BiTree T)
{
KeyType e;
T=NULL;
scanf("%d",&e);
while(e!=-1)
{ T=InsertBST(T,e);
scanf("%d",&e);
}
return T;
}
void PreOrder(BiTree T)
{ if(T!=NULL)
{ printf("%d ",T->data);
PreOrder(T->lchild);
PreOrder(T->rchild);
}
}
BiTree SearchBST(BiTree T,KeyType e){
if(!T) return NULL;
else if(T->data==e) return T;
else{ if(T->data>e)
return SearchBST(T->lchild,e);
else return SearchBST(T->rchild,e);
}
}
int main(void)
{ BiTree T;
KeyType k;
BiTree s;
T=(BiTree)malloc(sizeof(BiTNode));
T=CreateBST(T);
PreOrder(T);
scanf("%d",&k);
s=SearchBST(T,k);
if(s!=NULL)
printf("要查找的元素为%d.\n",s->data);
else
printf("未找到.\n");
return 0;
}