#include
#include
#define SIZE sizeof(struct BinaryTree)
struct BinaryTree
{
int data;
struct BinaryTree *llink,*rlink;
}*root;
void creat()
{
struct BinaryTree *p1,*p2;
int temp,flag;
root=NULL;
p1=p2=(struct BinaryTree *)malloc(SIZE);
printf("Input the data,input 0 stop:\n");
while(1)
{
scanf("%d",&temp); //输入0的时候,输入完成
if(temp==0) break;
if(root==NULL)
{
root=(struct BinaryTree *)malloc(SIZE);
root->data=temp; root->llink=root->rlink=NULL;
}
else
{
p2=root; flag=0;
while(flag!=1)
{
if(temp>=p2->data&&p2->rlink!=NULL) p2=p2->rlink;
else if(tempdata&&p2->llink!=NULL) p2=p2->llink;
else if(temp>=p2->data&&p2->rlink==NULL)
{
p1=(struct BinaryTree *)malloc(SIZE);
p1->data=temp;
p2->rlink=p1;
p1->llink=p1->rlink=NULL;
flag=1;
}
else if(tempdata&&p2->llink==NULL)
{
p1=(struct BinaryTree *)malloc(SIZE);
p1->data=temp;
p2->llink=p1;
p1->llink=p1->rlink=NULL;
flag=1;
}
}
}
}
}
void print(struct BinaryTree *p)
{
if(p!=NULL)
{
print(p->llink);
printf("%d ",p->data);
print(p->rlink);
}
}
void main()
{
creat();
print(root);
getch();
} |