我现有这个子函数,我需要一个主函数来调用这些子函数,以实现二叉树的查找!!求大侠们帮我完成这个题目!!
可以运行即可!!
子函数如下:
/* 二叉排序树的结点定义 */
typedef struct node
{
int key;
struct node *lchild, *rchild;
} NODE;
/* 创建二叉排序树 */
NODE *CreateBST(NODE *pr, int keys[], int n)
{
NODE *p=NULL, *q=NULL, *s=NULL;
int i;
for (i=0; i<n; i++)
{
/* 确定新的key值应当插入的位置 */
q=pr;
while( q!=NULL )
{
if (keys[i]<q->key)
p=q, q=q->lchild;
else
p=q, q=q->rchild;
}
/* 插入新的结点 */
s=(NODE *)malloc(sizeof(NODE));
s->key=keys[i];
s->lchild=NULL, s->rchild=NULL;
if (p==NULL) /* 根结点 */
pr=s;
else if (s->key<p->key)
p->lchild=s;
else
p->rchild=s;
}
return pr;
}
/* 在二叉排序树中查找某个key值 */
int SearchBST(NODE *pr, int key)
{
NODE *p=NULL;
p=pr;
while(p!=NULL)
{
if (key==p->key) /* 找到 */
return 1;
else if (key<p->key)
p=p->lchild;
else
p=p->rchild;
}
return 0;
}