[백준] 1991번: 트리 순회 문제 풀이 파이썬

문제 링크

https://www.acmicpc.net/problem/1991

풀이 방식

  1. 각 노드들을 입력 받아 그래프 형식으로 트리를 저장한다.
  2. 전위순회, 중위순회, 후위순회를 각각 함수로 정의한다.
  3. 순회 방식에 따라 출력과 재귀함수의 순서를 달리해준다.

전체 코드

from sys import stdin

def pre_order(root):
    if root != '.':
        print(root, end='')
        pre_order(tree[root][0])
        pre_order(tree[root][1])

def in_order(root):
    if root != '.':
        in_order(tree[root][0])
        print(root, end='')
        in_order(tree[root][1])

def post_order(root):
    if root != '.':
        post_order(tree[root][0])
        post_order(tree[root][1])
        print(root, end='')

N = int(input())
tree = {}
for i in range(N):
    node, left, right = stdin.readline().split()
    tree[node] = [left, right]

pre_order('A')
print()
in_order('A')
print()
post_order('A')

좋은 웹페이지 즐겨찾기