#include <stdio.h>
//二叉树的结构体
typedef struct node_t
{
char data;//数据域
//指针域
struct node_t *lchild;//左孩子
struct node_t *rchild;//右孩子
}bitree_t;
//前序遍历打印二叉树
void firstList(bitree_t *r)
{
if(r == NULL)
return;
printf("%c ", r->data);//先遍历自己
//再左右
firstList(r->lchild);
firstList(r->rchild);
}
//中序遍历打印二叉树
void middleList(bitree_t *r)
{
if(r == NULL)
return;
middleList(r->lchild);//先左
printf("%c ", r->data);//再自己
middleList(r->rchild);//最后右
}
//后续遍历打印二叉树
void lastList(bitree_t *r)
{
if(r == NULL)
return;
//先左右
lastList(r->lchild);
lastList(r->rchild);
//再自己
printf("%c ", r->data);
}
int main()
{
bitree_t A = {'A', NULL, NULL};
bitree_t B = {'B', NULL, NULL};
bitree_t C = {'C', NULL, NULL};
bitree_t D = {'D', NULL, NULL};
bitree_t E = {'E', NULL, NULL};
bitree_t F = {'F', NULL, NULL};
A.lchild = &B;
A.rchild = &C;
B.lchild = &D;
B.rchild = &E;
C.lchild = &F;
firstList(&A);
printf("\n");
middleList(&A);
printf("\n");
lastList(&A);
printf("\n");
return 0;
}