#include <stdio.h>
#include <iostream>
#include <vector>
#include <queue>
#include <map> 
#include <math.h>
#include <string>
#include <stdlib.h>
using namespace std;
 
int N;
int tree[30][2];
 
void preOrder(int nodeNum)
{
    if(nodeNum == '.' - 'A')
    {
        return;
    }
    
    cout << (char)(nodeNum + 'A');
    preOrder(tree[nodeNum][0]);
    preOrder(tree[nodeNum][1]);
}
 
void inOrder(int nodeNum)
{
    if(nodeNum == '.' - 'A')
    {
        return;
    }
    
    inOrder(tree[nodeNum][0]);
    cout << (char)(nodeNum + 'A');
    inOrder(tree[nodeNum][1]);
}
 
void postOrder(int nodeNum)
{
    if(nodeNum == '.' - 'A')
    {
        return;
    }
    
    postOrder(tree[nodeNum][0]);
    postOrder(tree[nodeNum][1]);
    cout << (char)(nodeNum + 'A');
}
 
int main(void)
{
//    freopen("B1991_input.txt", "r", stdin);
    
    cin >> N;
    
    while(N--)
    {
        char a, b, c;
        cin >> a >> b >> c;
        
        tree[a-'A'][0= b-'A';
        tree[a-'A'][1= c-'A';
    }
    
    preOrder(0);
    cout << "\n";
    
    inOrder(0);
    cout << "\n";
    
    postOrder(0);
    cout << "\n";
    
    return 0;
}
cs

+ Recent posts