http://code.bupt.edu.cn/problem/p/97/
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
struct p
{
int data;
p * l;
p * r;
};
void C(p * root,int t)
{
if(t<root->data&&root->l!=NULL)
C(root->l,t);
else if(t>root->data&&root->r!=NULL)
C(root->r,t);
else if(t<root->data&&root->l==NULL)
{
p * tmp;
tmp=(p * )malloc(sizeof(p));
tmp->l=NULL;
tmp->r=NULL;
tmp->data=t;
root->l=tmp;
printf("%d\n",root->data);
}
else if(t>root->data&&root->r==NULL)
{
p * tmp;
tmp=(p * )malloc(sizeof(p));
tmp->l=NULL;
tmp->r=NULL;
tmp->data=t;
root->r=tmp;
printf("%d\n",root->data);
}
else
;
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
p * root;
root=(p *)malloc(sizeof(p));
root->l=NULL;
root->r=NULL;
int t;
scanf("%d",&t);
root->data=t;
printf("-1\n");
for(int k=2;k<=n;k++)
{
scanf("%d",&t);
C(root,t);
}
}
return 0;
}