Algorithm/BOJ

1991 트리 순회

henry1214 2018. 9. 5. 11:19

https://www.acmicpc.net/problem/1991

 

 

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
44
45
46
47
48
49
#include <cstdio>
 
int tree[26][2];
 
void preorder(int x)
{
    if(x==-1return;
    printf("%c",x+'A');
    preorder(tree[x][0]);
    preorder(tree[x][1]);
}
 
void inorder(int x)
{
    if(x==-1return;
    inorder(tree[x][0]);
    printf("%c",x+'A');
    inorder(tree[x][1]);
}
 
void postorder(int x)
{
    if(x==-1return;
    postorder(tree[x][0]);
    postorder(tree[x][1]);
    printf("%c",x+'A');
}
 
int main()
{
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        char x,y,z;
        scanf(" %c %c %c",&x,&y,&z);
        x-='A';
        if(y=='.') y=-1else y-='A';
        if(z=='.') z=-1else z-='A';
        tree[x][0]=y,tree[x][1]=z;
    }
    preorder(0);
    printf("\n");
    inorder(0);
    printf("\n");
    postorder(0);
    printf("\n");
    return 0;
}
cs