https://www.acmicpc.net/problem/1991
풀이
정말 오랜만에 보는 순회 문제이다.
사실.. 나는 전위, 중위, 후위를 구현하는 방법을 알고있어서 어렵지 않게 문제를 풀었다.
풀이할게 딱히 없고, preorder, inorder, postorder를 구현할줄 알면 어렵지 않게 푸는 문제이다.
Code ( C++ )
#include <iostream>
#define MAX 26
using namespace std;
int N;
typedef struct node
{
char left, right;
};
node nodes[MAX];
void preorder(char ch)
{
if (ch == '.')
return;
cout << ch;
preorder(nodes[ch - 'A'].left);
preorder(nodes[ch - 'A'].right);
}
void inorder(char ch)
{
if (ch == '.')
return;
inorder(nodes[ch - 'A'].left);
cout << ch;
inorder(nodes[ch - 'A'].right);
}
void postorder(char ch)
{
if (ch == '.')
return;
postorder(nodes[ch - 'A'].left);
postorder(nodes[ch - 'A'].right);
cout << ch;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
cin >> N;
char ch, left, right;
for(int i = 0; i < N; i++)
{
cin >> ch >> left >> right;
nodes[ch - 'A'].left = left;
nodes[ch - 'A'].right = right;
}
preorder('A');
cout << "\n";
inorder('A');
cout << "\n";
postorder('A');
}
'💻 OnlineJudge > Baekjoon' 카테고리의 다른 글
[백준 / BOJ] C++ 2407 조합 (0) | 2022.12.07 |
---|---|
[백준 / BOJ] C++ 2096 내려가기 (0) | 2022.11.28 |
[백준 / BOJ] C++ 1967 트리의 지름 (0) | 2022.11.25 |
[백준 / BOJ] C++ 1932 정수 삼각형 (0) | 2022.11.25 |
[백준 / BOJ] C++ 1918 후위 표기식 (0) | 2022.11.24 |