先序创建
中序创建
后序创建
先序遍历
中序遍历
后序遍历
#include<cstdio>
#include<iostream>
using namespace std;
typedef struct btree{
char data;
struct btree *ltree,*rtree;
}tree,*Tree;
//先序创建
void create1(Tree &t)
{
char c;
scanf("%c",&c);
cin>>c;
if(c==' ') t=NULL;
else{
t=new btree;//t=(Tree)malloc(sizeof(tree)),,,,t=(*btree)malloc(sizeof(btree))
t->data=c;
create1(t->ltree);
create1(t->rtree);
}
}
//中序创建
void create2(Tree &t)
{
char c;
scanf("%c",&c);
cin>>c;
if(c==' ') t=NULL;
else{
t=new btree;//t=(Tree)malloc(sizeof(tree)),,,,t=(*btree)malloc(sizeof(btree))
create2(t->ltree);
t->data=c;
create2(t->rtree);
}
}
//后序创建
void create3(Tree &t)
{
char c;
scanf("%c",&c);
if(c==' ') t=NULL;
else{
t=new btree;//t=(Tree)malloc(sizeof(tree)),,,,t=(*btree)malloc(sizeof(btree))
create2(t->ltree);
create2(t->rtree);
t->data=c;
}
}
//先序遍历
void pre(Tree &t)
{
if(t){
cout<<t->data;
pre(t->ltree);
pre(t->rtree);
}
}
//中序遍历
void inorder(Tree &t)
{
if(t){
pre(t->ltree);
cout<<t->data;
pre(t->rtree);
}
}
//后序遍历
void back(Tree &t)
{
if(t){
pre(t->ltree);
pre(t->rtree);
cout<<t->data;
}
}
int main()
{
// freopen("in.txt","r",stdin);
Tree t;
create1(t);
pre(t);
}
//输入为:ABC DE G F (F后面有三个空格)
// A