70,022
社区成员




#define N 100
#include"stdio.h"
#include"stdlib.h"
typedef struct node
{
int key;
struct node *lch,*rch;
}BSTnode;
int insertBST(BSTnode **p,int k) //修改1
{
if(*p==NULL) //修改2
{
*p=(BSTnode *)malloc(sizeof(BSTnode));printf(" %d ",*p); //修改3、4
(*p)->key=k; //修改5
(*p)->lch=(*p)->rch=NULL; //修改6、7
return 1;
}
else if(k==(*p)->key) //修改8
return 0;
else if(k<(*p)->key) //修改9
return insertBST((*p)->lch,k); //修改10
else
return insertBST((*p)->rch,k); //修改11
}
BSTnode *creatBST(int a[],int n)
{
int i=0;
BSTnode *bt;bt=(BSTnode*)malloc(sizeof(BSTnode));
/* while(i<n)
{
insertBST(&bt,a[i]); //修改12
i++;printf(" %d ",bt);
}*/
return bt;
}
BSTnode *search(BSTnode *q,int k)
{
if(q==NULL||q->key==k)
return q;
if(k<q->key)
return search(q->lch,k);
else
return search(q->rch,k);
}
void inorder(BSTnode *bt)
{
if(bt!=NULL)
{
inorder(bt->lch);
printf("**%d**",bt->key);
inorder(bt->rch);
}
}
main()
{
int i,n=3,k,a[]={3,1,2};
// printf("input n:");
// scanf("%d",&n);
for(i=0;i<n;i++)
{
// a[i]=rand()%100;
printf("%5d",a[i]);
}
inorder(creatBST(a,n));
printf("input key k:");
scanf("%d",&k);
// bt=search(bt,k);
}