#include<stdio.h>
struct Node{
Node *lchild;
Node *rchild;
int c;
}Tree[110];
int loc=0;
void PreOrder(Node *T){
printf("%d ",T->c);
if(T->lchild) PreOrder(T->lchild);
if(T->rchild) PreOrder(T->rchild);
}
void InOrder(Node *T){
if(T->lchild)InOrder(T->lchild);
printf("%d ",T->c);
if(T->rchild)InOrder(T->rchild);
}
void PostOrder(Node *T){
if(T->lchild)PostOrder(T->lchild);
if(T->rchild)PostOrder(T->rchild);
printf("%d ",T->c);
}
Node* Creat(){
Tree[loc].lchild=Tree[loc].rchild=NULL;
return &Tree[loc++];
}
Node* Insert(Node *T,int x){
if(!T){
T=Creat();
T->c=x;
}
else if(x<T->c) T->lchild=Insert(T->lchild,x);
else if(x>T->c) T->rchild=Insert(T->rchild,x);
return T;
}
int main(){
int n,i,x;
while(~scanf("%d",&n)){
Node *T=NULL;
for( i=0;i<n;i++){
scanf("%d",&x);
T=Insert(T,x);
}
PreOrder(T);
printf("\n");
InOrder(T);
printf("\n");
PostOrder(T);
printf("\n");
}
return 0;
}
/*
5
1 6 5 9 8
*/
1.结构体数值类型定义错了
2loc没有作为全局变量,导致陷入死循环,但是为什么会陷入死循环还仍待思考