今天七夕诶,只想做十分钟水题,这是病吗。。
原谅我。。
一个套路,建树,然后前序遍历~
#include<stdio.h>
#include<stdlib.h>
typedef struct Tree{
Tree *left,*right;
int value;
}Tree;
Tree * root;
int cnt;
Tree * create(int x)
{
Tree * t=(Tree*)malloc(sizeof(Tree));
t->left=0;
t->right=0;
t->value=x;
return t;
}
Tree * insert(Tree * t,int x)
{
if(t==NULL)
t=create(x);
else
{
if(t->value>=x)
t->left=insert(t->left,x);
else
t->right=insert(t->right,x);
}
return t;
}
void preOrder(Tree * t)
{
if(t!=NULL)
{
if(cnt==0){printf("%d",t->value);cnt++;}
else printf(" %d",t->value);
preOrder(t->left);
preOrder(t->right);
}
}
int main()
{
int n,str[100010];
while(scanf("%d",&n)!=EOF)
{
root=NULL;
cnt=0;
for(int i=0;i<n;i++)
{
scanf("%d",&str[i]);
root=insert(root,str[i]);
}
preOrder(root);
printf("\n");
}
return 0;
}