问题标题: 酷町堂:1989

0
0
已解决
黄子澄
黄子澄
中级天翼
中级天翼

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;
}


0
我要回答