#include <stdio.h>
#include <stdlib.h>
#define M 255
typedef struct node{
char data;
struct node *lchild,*rchild;
}TreeNode,*BiTree;
BiTree T;
void visit(BiTree t){
printf("%c ",t->data);
}
void CreatTree(BiTree &T){ //利用先序遍历的递归建树
char c;
scanf("%c",&c);
if(c!='#'){
T=(TreeNode *)malloc(sizeof(TreeNode));
T->data=c;
T->lchild=T->rchild=NULL;
CreatTree(T->lchild);
CreatTree(T->rchild);
}
}
void PreOrder(BiTree t){ //递归先序遍历
if(t!=NULL){
visit(t);
PreOrder(t->lchild);
PreOrder(t->rchild);
}
}
void InOrder(BiTree t){ //递归中序遍历
if(t!=NULL){
InOrder(t->lchild);
visit(t);
InOrder(t->rchild);
}
}
void PostOrder(BiTree t){ //递归后序遍历
if(t!=NULL){
PostOrder(t->lchild);
PostOrder(t->rchild);
visit(t);
}
}
int main(){
//test();
CreatTree(T);
printf("先序遍历:");
PreOrder(T);
printf("\n中序遍历:");
InOrder(T);
printf("\n后序遍历:");
PostOrder(T);
return 0;
}
链式二叉树
最新推荐文章于 2025-03-19 19:27:59 发布
该博客主要介绍了如何使用C语言创建和遍历二叉树。通过先序、中序和后序遍历的方式展示了递归在二叉树操作中的应用。代码中定义了二叉树节点结构,实现了递归建树和三种遍历方法,为理解数据结构和递归提供了实例。
358

被折叠的 条评论
为什么被折叠?



