본문 바로가기
Computer Science

A기실 중위순회 / 트리 배열

by OKOK 2018. 12. 14.

1. 트리 문제

2. 배열로 만들어서

3. 이렇게 접근 가능하군

4. 링크드 리스트도 연습하면 될듯

5. 레퍼런스를 이용하는 경우가 있으려나,

6. 오케이

6. 알파 숫자 그리고 중위순회를 재귀형태로 만듦 


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
50
51
52
53
54
55
56
57
58
59
60
#include <stdio.h>
 
int N;
char Alpha[101];
int Firstchild[101];
int Secondchild[101];
char Answer[101];
 
void in_order(int V)
{
    if (V)
    {
        in_order(Firstchild[V]);
        printf("%c", Alpha[V]);
        in_order(Secondchild[V]);
    }
}
int main(void)
{
    freopen("input.txt""r", stdin);
    int test_case;
 
    for (test_case = 1; test_case <= 10++test_case)
    {
        int i, j;
        int addr;
        char str[1000];
 
        for (i = 0; i < 101; i++)
        {
            Firstchild[i] = 0;
            Secondchild[i] = 0;
            Alpha[i] = '\0';
        }
        addr = 0;
 
        scanf("%d"&N);
        for (i = 0; i < N; i++)
        {
            scanf("%d"&addr);
            scanf("%s", str);
 
            Alpha[addr] = str[0];
            if (addr * 2 <= N)
            {
                scanf("%d "&Firstchild[addr]);
                if (addr * 2 + 1 <= N)
                    scanf("%d "&Secondchild[addr]);
            }
        }
 
 
        printf("#%d ", test_case);
        in_order(1);
        printf("\n");
    }
 
    return 0;
}
 
cs


댓글