题目地址:http://ac.jobdu.com/problem.php?cid=1041&pid=3
C语言源码:
#include<stdio.h>
#include<stdlib.h>
typedef struct tree
{
int data;
struct tree *lchild,*rchild;
}tree;
tree *create(tree *root,int i)
{
tree *p,*q;
p=(tree *)malloc(sizeof(tree));
p->data=i;
p->lchild=NULL;
p->rchild=NULL;
if(root==NULL)
{
printf("-1\n");
return p;
}
else
{
q=root;
while((q->data>i&&q->lchild!=NULL)||(q->data<i&&q->rchild!=NULL))
{
if(q->data>i)
q=q->lchild;
else
q=q->rchild;
}
printf("%d\n",q->data);
if(q->data>i)
q->lchild=p;
else
q->rchild=p;
return root;
}
}
int main()
{
int n,a[110],i;
tree *root;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
scanf("%d",&a[i]);
root=NULL;
for(i=0;i<n;i++)
root=create(root,a[i]);
}
}