若节点中的int数据位内容为0则视为null节点
print1,2,3分别对应前,中,后序遍历
#include
#include
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);
printf("%d",p->data);
}
}
int main(){
struct Tnode *p=(struct Tnode *)malloc(sizeof(Tnode));
p=initTree();
printf("前序遍历结果:\n");
print1(p);
printf("\n");
printf("中序遍历结果\n");
print2(p);
printf("\n");
printf("后序遍历结果\n");
print3(p);
return 0;
}
[点击并拖拽以移动]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)