若节点中的int数据位内容为0则视为null节点
print1,2,3分别对应前,中,后序遍历
#include<stdio.h>
#include<stdlib.h>
struct Tnode{
int data;
Tnode *leftchild;
Tnode *rightchild;
};
struct Tnode *initTree(){
struct Tnode *p;
int x;
printf("请输入数据:\n");
scanf("%d",&x);
fflush(stdin);
p=(struct Tnode *)malloc(sizeof(struct Tnode));
if(x==0){
p=NULL;
}else{
p->data=x;
p->leftchild=initTree();
p->rightchild=initTree();
}
return p;
}
void print1(struct Tnode *p){
if (p==NULL){
return;
}else{
printf("%d",p->data);
print1(p->leftchild);
print1(p->rightchild);
}
}
void print2(struct Tnode *p){
if (p==NULL){
return;
}else{
print2(p->leftchild);
printf("%d",p->data);
print2(p->rightchild);
}
}
void print3(struct Tnode *p){
if (p==NULL){
return;
}else{
print3(p->leftchild);
print3(p->rightchild);