https://www.acmicpc.net/problem/1991
재귀로 트리 순회를 구현해주면 된다.
무조건 대문자로 들어온다고 했기 때문에 'A'를 빼주면서 A부터 0에 대응되도록 인덱스를 잡아준다.
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 | #include<iostream> using namespace std; struct NODE { char left; char right; }tree[27]; void preOrder(char root) { if (root == '.') return; cout << root; preOrder(tree[root-'A'].left); preOrder(tree[root-'A'].right); } void inOrder(char root) { if (root == '.') return; inOrder(tree[root - 'A'].left); cout << root; inOrder(tree[root - 'A'].right); } void postOrder(char root) { if (root == '.')return; postOrder(tree[root - 'A'].left); postOrder(tree[root - 'A'].right); cout << root; } int main(void) { int n; cin >> n; while (n--) { char parent, l, r; cin >> parent >> l >> r; tree[parent - 'A'].left = l; tree[parent - 'A'].right = r; } preOrder('A'); cout << '\n'; inOrder('A'); cout << '\n'; postOrder('A'); } | cs |
'알고리즘 문제 풀이 > 백준 온라인 저지' 카테고리의 다른 글
백준 6416 트리인가? C++ (0) | 2019.08.13 |
---|---|
백준 2042번 구간합 구하기 C++ (0) | 2019.08.13 |
백준 3878 점 분리 C++ (0) | 2019.08.12 |
백준 1708 볼록 껍질 C++ (0) | 2019.08.12 |
백준 10255 교차점 C++ (0) | 2019.08.11 |