#include<stdio.h>
#include<iostream>
#include<math.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define ll long long
typedef char Elemtype;
typedef struct BiTNode
{
Elemtype data;
struct BiTNode *lchild, *rchild;
} BiTNode,*BiTree;
void CreateBiTree(BiTree *t)
{
Elemtype c;
scanf("%c",&c);
if(c=='#')
*t=NULL;
else
{
(*t)=(BiTree)malloc(sizeof(BiTNode));
(*t)->data=c;
CreateBiTree(&(*t)->lchild);
CreateBiTree(&(*t)->rchild);
}
}
void visit(BiTree t)
{
printf("%c",t->data);
}
void InOrderTraverse(BiTree t)
{
if(t)
{
InOrderTraverse(t->lchild);
visit(t);
InOrderTraverse(t->rchild);
}
}
void PreOrderTraverse(BiTree t)
{
if(t)
{
visit(t);
PreOrderTraverse(t->lchild);
PreOrderTraverse(t->rchild);
}
}
void PostOrderTraverse(BiTree t)
{
if(t==NULL)
return ;
else
{
PostOrderTraverse(t->lchild);
PostOrderTraverse(t->rchild);
visit(t);
}
}
int main()
{
BiTree t;
CreateBiTree(&t);
PreOrderTraverse(t);//先序
printf("\n");
InOrderTraverse(t);//中序
printf("\n");
PostOrderTraverse(t);//后序
printf("\n");
return 0;
}
二叉树遍历模板(分别出先序,中序,后序)
最新推荐文章于 2022-06-26 18:22:10 发布