我改得快要死掉了,救救孩子吧qaqqqqqqqqq
#include<iostream>
#include<cstdlib>
using namespace std;
typedef struct BiTNode{
char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void CreatBiTree(BiTree &T){
char ch;
cin>>ch;
if(ch==' '){
T=NULL;
}
else{
if(!(T=(BiTNode*)malloc(sizeof(BiTNode))))
exit(0);
T->data=ch;
CreatBiTree(T->lchild);
CreatBiTree(T->rchild);
}
}
void PreOrderTraverse(BiTree T,void(*Visit)(char &e)){
if(T){
(Visit(T->data));
(PreOrderTraverse(T->lchild,Visit));
(PreOrderTraverse(T->rchild,Visit));
}}
void InOrderTraverse(BiTree T,void(*Visit)(char &e)){
if(T){
(InOrderTraverse(T->lchild,Visit));
(Visit(T->data));
(InOrderTraverse(T->rchild,Visit));
}}
void PostOrderTraverse(BiTree T,void(*Visit)(char &e)){
if(T){
(PostOrderTraverse(T->lchild,Visit));
(PostOrderTraverse(T->rchild,Visit));
(Visit(T->data));
}}
int main(){
BiTree T;
char e;
CreatBiTree(T);
cout<<"先序遍历:"<<endl;
PreOrderTraverse(T,&e);
cout<<"中序遍历:"<<endl;
InOrderTraverse(T,&e);
cout<<"后序遍历:"<<endl;
PostOrderTraverse(T,&e);
}
#include<iostream>
#include<cstdlib>
using namespace std;
typedef struct BiTNode{
char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void CreatBiTree(BiTree &T){
char ch;
cin>>ch;
if(ch==' '){
T=NULL;
}
else{
if(!(T=(BiTNode*)malloc(sizeof(BiTNode))))
exit(0);
T->data=ch;
CreatBiTree(T->lchild);
CreatBiTree(T->rchild);
}
}
void PreOrderTraverse(BiTree T,void(*Visit)(char &e)){
if(T){
(Visit(T->data));
(PreOrderTraverse(T->lchild,Visit));
(PreOrderTraverse(T->rchild,Visit));
}}
void InOrderTraverse(BiTree T,void(*Visit)(char &e)){
if(T){
(InOrderTraverse(T->lchild,Visit));
(Visit(T->data));
(InOrderTraverse(T->rchild,Visit));
}}
void PostOrderTraverse(BiTree T,void(*Visit)(char &e)){
if(T){
(PostOrderTraverse(T->lchild,Visit));
(PostOrderTraverse(T->rchild,Visit));
(Visit(T->data));
}}
int main(){
BiTree T;
char e;
CreatBiTree(T);
cout<<"先序遍历:"<<endl;
PreOrderTraverse(T,&e);
cout<<"中序遍历:"<<endl;
InOrderTraverse(T,&e);
cout<<"后序遍历:"<<endl;
PostOrderTraverse(T,&e);
}