#include<iostream>
#include<algorithm>
using namespace std;
typedef struct BTtree
{
char ch;
BTtree *l,*r;
};
void Create_tree(BTtree *&tree)
{
char c;
cin>>c;
if(c=='#')
{
tree=NULL;
return ;
}
else
{
BTtree *p=new BTtree;
p->ch=c;
tree=p;
Create_tree(tree->l);
Create_tree(tree->r);
}
}
void Pri_print(BTtree *tree)
{
if(tree!=NULL)
{
printf("%c",tree->ch);
Pri_print(tree->l);
Pri_print(tree->r);
}
else return;
}
void In_print(BTtree *tree)
{
if(tree!=NULL)
{
In_print(tree->l);
printf("%c",tree->ch);
In_print(tree->r);
}
}
void Ed_print(BTtree *tree)
{
if(tree!=NULL)
{
Ed_print(tree->l);
Ed_print(tree->r);
printf("%c",tree->ch);
}
}
int main()
{
printf("请输入二叉树:");
BTtree *tree=new BTtree;
Create_tree(tree);
printf("前序遍历:");
Pri_print(tree);
printf("\n");
printf("中序遍历:");
In_print(tree);
printf("\n");
printf("后序遍历:");
Ed_print(tree);
printf("\n");
return 0;
}
二叉树的前中后遍历
最新推荐文章于 2025-07-10 17:15:15 发布