#include<stdio.h>
struct Node{
Node *lchild;
Node *rchild;
char c;
}Tree[110];
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(){
int loc=0;
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->rchild=Insert(T->rchild,x);
else if(x<T->c) T->lchild=Insert(T->lchild,x);
return T;
}
int main(){
int n,i,x;
Node *T=NULL;
while(~scanf("%d",&n)){
for(int 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
*/
二叉排序树--哪里错了,求解
最新推荐文章于 2024-05-24 10:39:37 发布