#include <stdio.h>
#define MAXSIZE 100
#define OVERFLOW -1
#define Status int
#define bool int
#define true 1
#define flase 0
#define ElemType char
typedef struct BiTNode{
ElemType data;
struct BiTNode *lchild, *rchild;
}BiTNode, *BiTree;
//先序遍历初始化二叉树
BiTree InitBiTree(BiTree T)
{
char ch;
scanf("%c", &ch);
if ( ch == '#') T=NULL;
else {
T = (BiTree)malloc(sizeof(struct BiTNode));
T->data = ch;
T->lchild = InitBiTree(T->lchild);
T->rchild = InitBiTree(T->rchild);
}
return T;
}
//先序遍历
void PreOrder(BiTree T)
{
if (T!=NULL)
{
printf("%c", T->data);
PreOrder(T->lchild);
PreOrder(T->rchild);
}
}
//中序遍历
void MidOrder(BiTree T)
{
if (T!=NULL)
{
MidOrder(T->lchild);
printf("%c", T->data);
MidOrder(T->rchild);
}
}
//后续遍历
void BackOrder(BiTree T)
{
if (T!=NULL)
{
BackOrder(T->lchild);
BackOrder(T->rchild);
printf("%c", T->data);
}
}
int main()
{
int num;
BiTree T;
T = InitBiTree(T);
printf("前序遍历\n");
PreOrder(T);
printf("\n");
printf("中序遍历\n");
MidOrder(T);
printf("\n");
printf("后序遍历\n");
BackOrder(T);
printf("\n");
return 0;
}
//ABD##E##CF##G##
二叉树的遍历(前序中序后序)
猜你喜欢
转载自blog.csdn.net/weixin_46272577/article/details/111402488
今日推荐
周排行