题目:http://www.sqyoj.club/problem.php?id=1023
AC代码:
#include<cstdio>
using namespace std;
char s[200];
struct node{//p166自引用结构
char data;//数据域
node *lchild,*rchild;
//申明lchild是指向结构体node的地址变量,它的sizeof是固定的4个字节
};
node *bt;//申明一个指向node类型的地址变量bt。它是全局的
int i;
void build_tree(node * &bt){//替身
if(s[++i]!='.'){
bt=new node;
bt->data=s[i];//根
//printf("%x %x\n",bt->lchild,bt->rchild);
build_tree(bt->lchild);//递归建左子树
build_tree(bt->rchild);//递归建右子树
}
else bt=NULL;
}
void zx(node *bt){
if(bt){
zx(bt->lchild);
printf("%c",bt->data);
zx(bt->rchild);
}
}
void hx(node *bt){
if(bt){
hx(bt->lchild);
hx(bt->rchild);
printf("%c",bt->data);
}
}
int main(){
scanf("%s",s);
i=-1;
build_tree(bt);
zx(bt);
printf("\n");
hx(bt);
return 0;
}