https://www.acmicpc.net/problem/1991
문제 자체는 쉬웠는데 트리를 알고리즘 문제 풀며 처음 다뤄봐서 다른 사람 풀이 참고해 풀었다.
⭐map과 구조체를 이용해 트리 구현
#include <iostream>
#include <map>
using namespace std;
struct Node {
char left;
char right;
};
map<char, Node> m;
void preOrder(char node) {
if (node == '.')
return;
cout << node;
preOrder(m[node].left);
preOrder(m[node].right);
}
void inOrder(char node) {
if (node == '.')
return;
inOrder(m[node].left);
cout << node;
inOrder(m[node].right);
}
void postOrder(char node) {
if (node == '.')
return;
postOrder(m[node].left);
postOrder(m[node].right);
cout << node;
}
int main() {
int n;
char index, left, right;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> index >> left >> right;
m[index].left = left;
m[index].right = right;
}
preOrder('A');
cout << '\n';
inOrder('A');
cout << '\n';
postOrder('A');
return 0;
}