题目链接:点我跳转
题目大意:输入一串二叉树,用遍历前序打出。
题目分析:没啥好分析的,,,
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<algorithm>
using namespace std;
struct node{int p,l,r;}in[30];
int find_p(int a){
return a == in[a].p?a:find_p(in[a].p);
}
void out(int a){
printf("%c",a+'a');
if(in[a].l != -1)out(in[a].l);
if(in[a].r != -1)out(in[a].r);
}
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++)
in[i].p = i;
for(int i=0;i<n;i++){
string ss;
cin>>ss;
int now = ss[0] - 'a',
l = (ss[1] == '*')?-1:ss[1] - 'a',
r = (ss[2] == '*')?-1:ss[2] - 'a';
in[now].l = l;
in[now].r = r;
if(l>=0)in[l].p = now;
if(r>=0)in[r].p = now;
}
out(find_p(0));
return 0;
}