#include<stdio.h>
#include<malloc.h>
typedef struct BitNode
{
char data;
struct BitNode *lchild; //左孩子
struct BitNode *rchild; //右孩子
}BitTree;
/*****创建二叉树 ******/
BitTree * CreateBitTree()
{
BitTree *T=0;
char ch;
scanf("%c",&ch);
fflush(stdin);
if('#'==ch)
{
T=NULL;
return 0;
}
else
{
T=(BitTree *)malloc(sizeof(BitTree));
T->data=ch;
T->lchild=CreateBitTree();
T->rchild=CreateBitTree();
}
return T;
}
/*************先序遍历***************************/
int PreOrderTraverse(BitTree *T)
{
if(T!=NULL)
{
printf("%c ",T->data);
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);
}
return 0;
}
/*************中序遍历************************/
int InOrderTraverse(BitTree *T)
{
if(T!=NULL)
{
InOrderTraverse(T->lchild);
printf("%c ",T->data);
InOrderTraverse(T->rchild);
}
return 0;
}
/**************后序遍历********************/
int PostOrderTraverse(BitTree *T)
{
if(T!=NULL)
{
PostOrderTraverse(T->lchild);
PostOrderTraverse(T->rchild);
printf("%c ",T->data);
}
return 1;
}
int main()
{
BitTree *p=0;
printf("请输入字符,以'#'结束");
p=CreateBitTree();
PostOrderTraverse(p);
return 0;
}二叉树的创建与遍历
最新推荐文章于 2020-11-24 11:45:43 发布
198

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



