# include <stdio.h>
# include <malloc.h>
typedef struct node
{
int data;
struct node* lchid;
struct node* rchild;
}Node,*Pnode;
void charu(Pnode phead,int a);
void zhongxu(Pnode L);
int main()
{
int i;
int a[6]={7,9,3,6,5,1};
Pnode L=(Pnode)malloc(sizeof(Node));
L->data=a[0];//此处给定一个初值
L->lchid=NULL;
L->rchild=NULL;
for(i=1;i<6;i++)
{
charu(L,a[i]);
}
zhongxu(L);
return 0;
}
void charu(Pnode phead,int a)
{
if(a>=phead->data)
{
if(phead->rchild==NULL)
{
Pnode pnew =(Pnode)malloc(sizeof(Node));
phead->rchild=pnew;
pnew->lchid=NULL;
pnew->rchild=NULL;
pnew->data=a;
}
else
{
charu(phead->rchild,a);//主要难点是二叉排序树的寻找上
}
}
if(a<phead->data)
{
if(phead->lchid==NULL)
{
Pnode pnew=(Pnode)malloc(sizeof(Node));
phead->lchid=pnew;
pnew->lchid=NULL;
pnew->rchild=NULL;
pnew->data=a;
}
else
{
charu(phead->lchid,a);
}
}
}
void zhongxu(Pnode L)
{
if(L!=NULL)
{
if(L->lchid!=NULL)
zhongxu(L->lchid);
printf("%d ",L->data);
if(L->rchild!=NULL)
zhongxu(L->rchild);
}
}
# include <malloc.h>
typedef struct node
{
int data;
struct node* lchid;
struct node* rchild;
}Node,*Pnode;
void charu(Pnode phead,int a);
void zhongxu(Pnode L);
int main()
{
int i;
int a[6]={7,9,3,6,5,1};
Pnode L=(Pnode)malloc(sizeof(Node));
L->data=a[0];//此处给定一个初值
L->lchid=NULL;
L->rchild=NULL;
for(i=1;i<6;i++)
{
charu(L,a[i]);
}
zhongxu(L);
return 0;
}
void charu(Pnode phead,int a)
{
if(a>=phead->data)
{
if(phead->rchild==NULL)
{
Pnode pnew =(Pnode)malloc(sizeof(Node));
phead->rchild=pnew;
pnew->lchid=NULL;
pnew->rchild=NULL;
pnew->data=a;
}
else
{
charu(phead->rchild,a);//主要难点是二叉排序树的寻找上
}
}
if(a<phead->data)
{
if(phead->lchid==NULL)
{
Pnode pnew=(Pnode)malloc(sizeof(Node));
phead->lchid=pnew;
pnew->lchid=NULL;
pnew->rchild=NULL;
pnew->data=a;
}
else
{
charu(phead->lchid,a);
}
}
}
void zhongxu(Pnode L)
{
if(L!=NULL)
{
if(L->lchid!=NULL)
zhongxu(L->lchid);
printf("%d ",L->data);
if(L->rchild!=NULL)
zhongxu(L->rchild);
}
}