본문 바로가기
Computer Science

Tree

by OKOK 2019. 1. 14.

1. 트리 어떻게 쓰고 있는지 확인

2. 레퍼런스를 어떻게 가져다 쓰는지 확인

3. 해쉬 문제 확인

4. 링크드 리스트 확인

5. 큐리 문제 풀이 확인

6. 자료 구조 어떻게 짤 것 인지만 확인

7. 자연스럽게  풀이하기 


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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <stdio.h>
#define MAX_NODE_NUM 100
#define MAX_CHILD_NUM 2
 
typedef struct {
    int parent;
    int child[MAX_CHILD_NUM];
}TreeNode;
 
TreeNode tree[MAX_NODE_NUM];
int nodeNum;
int edgeNum;
int root;
 
void initTree(void) {
    int i, j;
    for (i = 0; i <= nodeNum; i++) {
        tree[i].parent = -1;
        for (j = 0; j < MAX_CHILD_NUM; j++) {
            tree[i].child[j] = -1;
        }
    }
}
 
void addChild(int parent, int child) {
    int i;
    for (i = 0; i < MAX_CHILD_NUM; i++) {
        if (tree[parent].child[i] == -1) {
            break;
        }
    }
    tree[parent].child[i] = child;
    tree[child].parent = parent;
}
 
int getRoot(void) {
    int i, j;
    for (i = 1; i <= nodeNum; i++) {
        if (tree[i].parent == -1) {
            return i;
        }
    }
    return -1;
}
 
void preOrder(int root) {
    int i;
    int child;
    printf("%d ", root);
    for (i = 0; i < MAX_CHILD_NUM; i++) {
        child = tree[root].child[i];
        if (child != -1) {
            preOrder(child);
        }
    }
}
 
int main(void) {
    freopen("input.txt""r", stdin);
    int test_case;
    int T, i, parent, child;
    scanf("%d"&T);
    for (test_case = 1; test_case <= T; ++test_case) {
        scanf("%d %d"&nodeNum, &edgeNum);
        initTree();
        for (i = 0; i < edgeNum; i++) {
            scanf("%d %d"&parent, &child);
            addChild(parent, child);
        }
        root = getRoot();
 
        printf("#%d ", test_case);
        preOrder(root);
        printf("\n");
    }
    return 0;
}
 
cs

 


'Computer Science' 카테고리의 다른 글

Linked List  (0) 2019.01.14
Graph  (0) 2019.01.14
프양연 프리랜서  (0) 2019.01.11
프양연 두 번 이상 등장하는 문자열  (0) 2019.01.08
프양연 단어가 등장하는 횟수  (0) 2019.01.08

댓글