#include<iostream>
#include<cstdlib>
using namespace std;
struct Btree
{
char c;
Btree *left;
Btree *right;
Btree(){}
Btree(char value)
:c(value), left(nullptr), right(nullptr)
{
}
};
Btree *btree;
int number;
Btree * CreateBtree(char *a, int num)
{
Btree *T;
if (number >=num)
{
return (NULL);
}
if (a[number] == '0')
{
number++;
return (NULL);
}
T = new Btree();
T->c = a[number];
number++;
T->left = CreateBtree(a,num);
T->right = CreateBtree(a,num);
return T;
}
void PreOrder(Btree *T)
{
if (T)
{
cout << T->c<<" ";
PreOrder(T->left);
PreOrder(T->right);
}
}
void InOrder(Btree *T)
{
if (T)
{
PreOrder(T->left);
cout << T->c << " ";
PreOrder(T->right);
}
}
void PostOrder(Btree *T)
{
if (T)
{
PreOrder(T->left);
PreOrder(T->right);
cout << T->c << " ";
}
}
int main()
{
char a[100];
int num;//字符串的个数
cin >> num;
for (int i = 0; i < num; i++)
{
cin >> a[i];
}
//输入建立二叉树所用的字符串
number = 0;
btree=CreateBtree(a,num);
PreOrder(btree);
cout << endl;
InOrder(btree);
cout << endl;
PostOrder(btree);
system("pause");
return 0;
}
#include<iostream>
#include<cstdlib>
using n