样例输入:1 2 4 7 0 0 0 5 0 0 3 0 6 8 0 0 9 0 0
输出
124753689
742513869
745289631
#include<cstdio>
#include<iostream>
using namespace std;
typedef struct node;
typedef node * tree;
struct node{
int data;
tree l,r;
};
tree build(){ //build 二叉树建立
tree p=new node;
int k;scanf("%d",&k);
if(k){
p->data=k;
p->l=build();
p->r=build();
}
else{p->data=k;p->l==NULL;p->r==NULL;}
return p;
}
void preorder(tree bt){ //preorder 先序遍历
if(bt->data!=0){
printf("%d",bt->data);
preorder(bt->l);
preorder(bt->r);
}
}
void inorder(tree bt){ //inorder 中序遍历
if(bt->data!=0){
inorder(bt->l);
printf("%d",bt->data);
inorder(bt->r);
}
}
void postorder(tree bt){ //postorder 后序遍历
if(bt->data!=0){
postorder(bt->l);
postorder(bt->r);
printf("%d",bt->data);
}
}
int main()
{
tree root=build();
preorder(root);printf("\n");
inorder(root);printf("\n");
postorder(root);printf("\n");
}