80分
#include<iostream>
#include<string>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstdlib>
#include<queue>
#include<iomanip>
#include<list>
#include<stack>
#define MAXN 10000
using namespace std;
struct node{
char c;
int left,right;
};
node tree[MAXN];
int n;
char q[MAXN],p[MAXN];
void z(int idx){
if(idx!=0){
cout<<tree[idx].c;
z(tree[idx].left);
z(tree[idx].right);
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>tree[i].c>>q[i]>>p[i];
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(q[i]==tree[j].c){
tree[i].left=j;
break;
}
}
for(int j=1;j<=n;j++){
if(p[i]==tree[j].c){
tree[i].right=j;
break;
}
}
}
for(int i=1;i<=n;i++){
cout<<tree[i].c<<" "<<tree[i].left<<" "<<tree[i].right<<endl;
}
z(1);
return 0;
}
黄子澄在2020-12-13 15:05:28追加了内容
#include<iostream>
#include<string>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstdlib>
#include<queue>
#include<iomanip>
#include<list>
#include<stack>
#define MAXN 10000
using namespace std;
struct node{
char c;
int left,right;
};
node tree[MAXN];
int n;
char q[MAXN],p[MAXN];
void z(int idx){
if(idx!=0){
cout<<tree[idx].c;
z(tree[idx].left);
z(tree[idx].right);
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>tree[i].c>>q[i]>>p[i];
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(q[i]==tree[j].c){
tree[i].left=j;
break;
}
}
for(int j=1;j<=n;j++){
if(p[i]==tree[j].c){
tree[i].right=j;
break;
}
}
}
z(1);
return 0;
}