首先,根据输入的字符串建立一棵二叉树,这里的字符串默认是先序。用#表示空的结点
比如:ABDG##H##E##CK##FI#J###
#include <iostream>
using namespace std;
typedef struct Node{
char key;
struct Node *left;
struct Node *right;
}Node,*Tree;
int createTree(Tree &T){
char data;
cin>>data;
if(data == '#')
T = NULL;
else{
T = (Tree)malloc(sizeof(Node));
T->key = data;
createTree(T->left);
createTree(T->right);
}
return 0;
}
void preorderVisit(Tree T){
if(T != NULL){
if(T->key != '#')
cout<<T->key<<" ";
preorderVisit(T->left);
preorderVisit(T->right);
}
}
void inorderVisit(Tree T){
if(T != NULL){
inorderVisit(T->left);
if(T->key != '#')
cout<<T->key<<" ";
inorderVisit(T->right);
}
}
void postorderVisit(Tree T){
if(T != NULL){
postorderVisit(T->left);
postorderVisit(T->right);
if(T->key != '#')
cout<<T->key<<" ";
}
}
int main(){
Tree T;
createTree(T);
cout<<"先序遍历:"<<endl;
preorderVisit(T);
cout<<endl;
cout<<"中序遍历:"<<endl;
inorderVisit(T);
cout<<endl;
cout<<"后序遍历:"<<endl;
postorderVisit(T);
return 0;
}</span>
结果: