[C] 백준 1991 트리 순회
https://www.acmicpc.net/problem/1991
문제
이진 트리를 입력받아 전위 순회(preorder traversal), 중위 순회(inorder traversal), 후위 순회(postorder traversal)한 결과를 출력하는 프로그램을 작성하시오.
예를 들어 위와 같은 이진 트리가 입력되면,
- 전위 순회한 결과 : ABDCEFG // (루트) (왼쪽 자식) (오른쪽 자식)
- 중위 순회한 결과 : DBAECFG // (왼쪽 자식) (루트) (오른쪽 자식)
- 후위 순회한 결과 : DBEGFCA // (왼쪽 자식) (오른쪽 자식) (루트)
가 된다.
제출 25000 정답 비율 64%
코드
#include <stdio.h>
#include <stdlib.h>
int N = 0;
struct tree {
char left, right;
};
struct tree arr[50];
void front(char root) {
//전위: 루트-왼-오
if (root == '.')
return;
printf("%c", root);
front(arr[root].left);
front(arr[root].right);
}
void mid(char root) {
//중위: 왼-루트-오
if (root == '.')
return;
mid(arr[root].left);
printf("%c", root);
mid(arr[root].right);
}
void back(char root) {
//후위: 왼-오-루트
if (root == '.')
return;
back(arr[root].left);
back(arr[root].right);
printf("%c", root);
}
void main() {
scanf("%d", N);
char a, b, c;
for (int i = 0; i < N; i++) {
scanf("%c %c %c", &a, &b, &c);
arr[a].left = b; arr[a].right = c;
}
front('A'); printf("\n");
mid('A'); printf("\n");
back('A'); printf("\n");
}
Author And Source
이 문제에 관하여([C] 백준 1991 트리 순회), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@z00m__in/C-백준-1991-트리-순회저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)