[백준] 1991번 - 트리 순회

Cllaude·2023년 8월 14일
1

backjoon

목록 보기
62/65


문제 분석

문제에서 주어진 노드간의 관계를 트리 형태의 자료구조에 적절하게 저장하고, 그 안에서 탐색을 수행하면 된다.
따라서 인접리스트의 형태로 트리의 관계를 표현하고, 재귀함수를 통해 탐색을 수행하여 문제를 해결하면된다.


소스 코드

import sys
sys.setrecursionlimit(10 ** 6)
input = sys.stdin.readline

N = int(input())
arr = [[] for _ in range(26)]

for _ in range(N):
    node, left, right = input().split()
    arr[ord(node) - ord('A')].append((left, right))


def preorder(node):
    if node != '.':
        left, right = arr[ord(node) - ord('A')][0]
        print(node, end='')
        preorder(left)
        preorder(right)


def inorder(node):
    if node != '.':
        left, right = arr[ord(node) - ord('A')][0]
        inorder(left)
        print(node, end='')
        inorder(right)


def postorder(node):
    if node != '.':
        left, right = arr[ord(node) - ord('A')][0]
        postorder(left)
        postorder(right)
        print(node, end='')


preorder('A')
print()
inorder('A')
print()
postorder('A')

0개의 댓글