/
1991.cpp
43 lines (40 loc) · 969 Bytes
/
1991.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <stdio.h>
char left[26];
char right[26];
void pre_travel(int idx){
printf("%c", (char)idx+'A');
if(left[idx] != '.')
pre_travel(left[idx]-'A');
if(right[idx] != '.')
pre_travel(right[idx]-'A');
}
void in_travel(int idx){
if(left[idx] != '.')
in_travel(left[idx]-'A');
printf("%c", (char)idx+'A');
if(right[idx] != '.')
in_travel(right[idx]-'A');
}
void post_travel(int idx){
if(left[idx] != '.')
post_travel(left[idx]-'A');
if(right[idx] != '.')
post_travel(right[idx]-'A');
printf("%c", (char)idx+'A');
}
int main(void){
int N;
scanf("%d", &N);
for(int i = 0; i < N; i++){
char t1, t2, t3, t4, t5, t6;
scanf("%c%c%c%c%c%c", &t1, &t2, &t3, &t4, &t5, &t6); // t2 t4 t6
left[t2-'A'] = t4;
right[t2-'A'] = t6;
}
pre_travel(0);
printf("\n");
in_travel(0);
printf("\n");
post_travel(0);
printf("\n");
}