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 |
Tags
- 수학
- 충돌 알고리즘
- 보로노이다이어그램
- linux
- c#
- 내적
- AABB
- 리눅스
- 백준
- 분할축 이론
- Vector
- C
- SOH
- 다이나믹 프로그래밍
- uclidean algorithm
- Doubly Connected Edge List
- 문제풀이
- dp
- 우분투
- PS
- C++
- GJK
- 외적
- Expanding Polytope Algorithm
- Unity
- 알고리즘
- ubuntu
- 유니티
- Graham Scan
- 벡터
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 |