#include "stdio.h"
#include "stdlib.h"
typedef char elemtype;
typedef struct btnode{
elemtype data;
struct btnode *lchild;
struct btnode *rchild;
}bitnode,*bitree;
bitree CreateBiTree()
{
bitree t;
char ch;
char a
scanf("%c",&ch);
a=getchar(); //这样才能识别输入完毕了, a接收回车符号
if(ch=='*') //* 表示节点是叶子节点
t=NULL;
else
{
t=(bitnode *)malloc(sizeof(bitnode));
t->data=ch;
t->lchild=CreateBiTree();
t->rchild=CreateBiTree();
}
return t;
}
void PreOrder(bitree bt)
{
if(bt!=NULL){
printf("%c",bt->data);
PreOrder(bt->lchild);
PreOrder(bt->rchild);
}
}
void MidOrder(bitree bt)
{
if(bt!=NULL){
MidOrder(bt->lchild);
printf("%c",bt->data);
MidOrder(bt->rchild);
}
}
void PostOrder(bitree bt)
{
if(bt!=NULL){
PostOrder(bt->lchild);
PostOrder(bt->rchild);
printf("%c",bt->data);
}
}
main()
{
bitree bt1;
printf("创建二叉树:/n");
bt1=CreateBiTree();
printf("先序遍历二叉树递归算法:/n");
PreOrder(bt1);
printf("中序遍历二叉树递归算法:/n");
MidOrder(bt1);
printf("后序遍历二叉树递归算法:/n");
PostOrder(bt1);
}
//-------------------------------------------------------
输入为:
A
B
C
*
D
*
*
E
*
*
F
*
H
*
*
//----------------------------------------------------------------