二叉树的前中后序遍历
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 200
typedef int TElemType;
typedef struct BiTNode{
TElemType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void createBiTree(BiTree *t)
{
//先序遍历创建二叉树
int e;
scanf("%d",&e);
if(e==-1)
*t=NULL;
else
{
*t=(BiTree)malloc(sizeof(BiTNode));
(*t)->data=e;
printf("请输入%d的左子节点的值:",e)
createBiTree(&(*t)->lchild);
printf("请输入%d的右子节点的值:",e);
createBiTree(&(*t)->rchild);
}
}
void PreOrderTraverse(BiTree t)
{
//递归先序遍历
if(t!=NULL)
{
printf("%d",t->data);
PreOrderTraverse(t->lchild);
PreOrderTraverse(t->rchild);
}
}
void InOrderTraverse(BiTree t)
{
//递归中序遍历
if(t!=NULL)
{
InOrderTraverse(t->lchild);
printf("%d",t->data);
InOrderTraverse(t->rchild);
}
}
void PostOrderTraverse(BiTree t)
{
//递归后序遍历
if(t!=NULL)
{
PostOrderTraverse(t->lchild);
PostOrderTraverse(t->rchild);
printf("%d",t->data);
}
}
void aPreOr


4741

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



