어흥
[백준 1991] 트리 순회 (C++) 본문
728x90
반응형
문제 링크: https://www.acmicpc.net/problem/1991
1. 주의할 점
- Node 구조체를 만들 줄 알아야한다.
2. 구현
- Node 구조체를 만든 이후 Nodes 배열을 생성한다.
- 각 Node를 생성해준다
- 입력받은 순서에 따라 Node를 연결해준다
#include <iostream>
using namespace std;
struct node {
node* left;
node* right;
char val;
};
void preorder(node* n) {
cout << n->val;
if (n->left != NULL)
preorder(n->left);
if (n->right != NULL)
preorder(n->right);
}
void inorder(node* n) {
if (n->left != NULL)
inorder(n->left);
cout << n->val;
if (n->right != NULL)
inorder(n->right);
}
void postorder(node* n) {
if (n->left != NULL)
postorder(n->left);
if (n->right != NULL)
postorder(n->right);
cout << n->val;
}
int main() {
int num;
char m, l, r;
node nodes[26];
cin >> num;
for (int i = 0; i < num; i++) {
nodes[i].val = i+'A';
nodes[i].left = NULL;
nodes[i].right = NULL;
}
for (int i = 0; i < num; i++) {
cin >> m >> l >> r;
if (l != '.') nodes[m - 'A'].left = &nodes[l - 'A'];
if (r != '.') nodes[m - 'A'].right = &nodes[r - 'A'];
}
preorder(&nodes[0]);
cout << '\n';
inorder(&nodes[0]);
cout << '\n';
postorder(&nodes[0]);
cout << '\n';
system("pause");
return 0;
}
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준 5567] 결혼식 (C++) (0) | 2020.03.19 |
---|---|
[백준 3678] 카탄의 개척자 (C++) (3) | 2020.03.18 |
[백준 2573] 빙산 (C++) (0) | 2020.03.18 |
[백준 7348] 테이블 옮기기 (C++) (0) | 2020.03.18 |
[백준 2079, 1509] 팰린드롬 / 팰린드롬 분할 (C++) (0) | 2020.03.17 |
Comments