#define _CRT_SECURE_NO_WARNINGS 1
//二叉树
#include <stdio.h>
#include <stdlib.h>
typedef struct BiTNode
{
char data;
struct BiTNode* lchild, * rchild;
}BiTNode,*BiTree;
//创建
void CreateTree(BiTree* T)
{
char ch;
scanf("%c", &ch);
if (ch == '#')
{
*T = NULL;
}
else
{
*T = (BiTree)malloc(sizeof(BiTNode));
if (!*T)
exit(0);
(*T)->data = ch;
CreateTree(&(*T)->lchild);
CreateTree(&(*T)->rchild);
}
}
//前序遍历
void PreOrder(BiTree T)
{
if (T == NULL)
return;
printf("%c ", T->data);
PreOrder(T->lchild);
PreOrder(T->rchild);
}
//中序遍历
void InOrder(BiTree T)
{
if (T == NULL)
return;
InOrder(T->lchild);
printf("%c ", T->data);
InOrder(T->rchild);
}
//后序遍历
void PostOrder(BiTree T)
{
if (T == NULL)
return;
PostOrder(T->lchild);
PostOrder(T->rchild);
printf("%c ", T->data);
}
int main()
{
BiTree T;
printf("创建二叉树: \n");
CreateTree(&T);
printf("前序遍历: ");
PreOrder(T);
printf("\n中序遍历: ");
InOrder(T);
printf("\n后序遍历: ");
PostOrder(T);
return 0;
}