#include <bits/stdc++.h>
using namespace std;
typedef struct treenode
{
char val;//结点
struct treenode *left;//建立左指针
struct treenode *right;//建立右指针
}tno,*t_pointer;
void buildtree(t_pointer &t)//建立二叉树
{
char ch;
cin>>ch;
if(ch=='#')
{
t=NULL;
}
else
{
//t=new tno;
//t=(t_pointer)malloc(sizeof(tno));
t=new tno;
t->val=ch;
buildtree(t->left);//利用递归思想,
buildtree(t->right);//因为前序遍历的顺序是中左右,所以是先递归左子树,再递归右子树
}
}
t_pointer shuchutree(t_pointer &t)
{
if(t!=NULL)
{
printf("%c",t->val);
shuchutree(t->left);
shuchutree(t->right);
}
}
int main()
{
t_pointer root;//先建立一个根结点
root=NULL;//先让根结点为空,也就是先让初始的树为空
buildtree(root);
shuchutree(root);
//cout << "Hello world!" << endl;
return 0;
}
输入:AB##C##
输出:ABC