#include<bits/stdc++.h>
using namespace std;
class Node{
public:
Node*
left;
Node*
right;
int content;
Node(){
left=
NULL;
right=
NULL;
}
Node(
int value){
left=
NULL;
right=
NULL;
content=value;
}
};
void postOrder(Node* T){
if(T!=
NULL){
if(T->
left!=
NULL) postOrder(T->
left);
if(T->
right!=
NULL) postOrder(T->
right);
printf(
"%d ",T->content);
}
}
void preOrder(Node* T){
if(T!=
NULL){
printf(
"%d ",T->content);
if(T->
left!=
NULL) preOrder(T->
left);
if(T->
right!=
NULL) preOrder(T->
right);
}
}
void inOrder(Node* T){
if(T!=
NULL){
if(T->
left!=
NULL) inOrder(T->
left);
printf(
"%d ",T->content);
if(T->
right!=
NULL) inOrder(T->
right);
}
}
int arr[
101];
void insertHelper(Node* & t,
int val){
if(t==
NULL) t=
new Node(val);
else{
if(val>t->content) insertHelper(t->
right,val);
else if(val<t->content) insertHelper(t->
left,val);
else return;
}
}
Node* build(
int num){
Node* root=
NULL;
for(
int i=
0;i<num;i++){
insertHelper(root,arr[i]);
}
return root;
}
int main(){
int num;
int val,temp1,temp2;
while(scanf(
"%d",&num)!=EOF){
for(
int i=
0;i<num;i++) scanf(
"%d",&arr[i]);
Node* T=build(num);
preOrder(T);
printf(
"\n");
inOrder(T);
printf(
"\n");
postOrder(T);
printf(
"\n");
}
return
0;
}
转载请注明原文地址: https://ju.6miu.com/read-1982.html