Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- C
- ubuntu
- GJK
- c#
- PS
- Doubly Connected Edge List
- Expanding Polytope Algorithm
- dp
- 리눅스
- 보로노이다이어그램
- 유니티
- Unity
- 수학
- C++
- Graham Scan
- 문제풀이
- 외적
- 충돌 알고리즘
- 내적
- linux
- Vector
- 알고리즘
- 벡터
- uclidean algorithm
- AABB
- 다이나믹 프로그래밍
- 분할축 이론
- 우분투
- SOH
- 백준
Archives
- Today
- Total
마이 플밍 블로그
백준 1991 트리 순회 본문
기본적인 트리 순회 구조문제
이 문제에선 전위, 중위, 후위 순회 순서로 출력하라고 한다. 이게 무슨 소리냐면
전위 - 부모 좌 우
중위 - 좌 부모 우
후위 - 좌 우 부모
순서로 순회를 하라는 소리다
#include <iostream>
#include <vector>
using namespace std;
int TreeNum = 0;
vector<vector<char>> arr(26, vector<char>(3, 0));
void PreOrder(char node) {
if (node == '.')
return;
int nodeNum = (int)node - 65;
cout << node;
PreOrder(arr[nodeNum][0]);
PreOrder(arr[nodeNum][1]);
}
void InOrder(char node) {
if (node == '.')
return;
int nodeNum = (int)node - 65;
InOrder(arr[nodeNum][0]);
cout << node;
InOrder(arr[nodeNum][1]);
}
void PostOrder(char node) {
if (node == '.')
return;
int nodeNum = (int)node - 65;
PostOrder(arr[nodeNum][0]);
PostOrder(arr[nodeNum][1]);
cout << node;
}
int main(void) {
cin >> TreeNum;
for (int i = 0; i < TreeNum; i++) {
char c;
cin >> c;
int num = (int)c - 65;
cin >> arr[num][0];
cin >> arr[num][1];
}
PreOrder('A');
cout << endl;
InOrder('A');
cout << endl;
PostOrder('A');
return 0;
}
'문제풀이 > 백준' 카테고리의 다른 글
백준 2110 - 공유기 설치 (0) | 2021.10.10 |
---|---|
백준 10816 - 숫자카드2 (0) | 2021.10.10 |
백준 1992 - 쿼드트리 (0) | 2021.10.09 |
백준 1914 - 하노이탑 (0) | 2021.10.06 |
백준 2178 미로찾기 (0) | 2021.07.02 |