본문 바로가기
Algorithms과 자료구조/그래프(vertex, edge, node, arc), BFS, DFS,

트리구조_백준 1991 트리순회 파이썬

by Success T.H.I.E.F 2021. 11. 19.

 

 

백준 1991 트리순회

import sys
input = sys.stdin.readline

n = int(input())
Tree = {}

for i in range(n):
    data, left_node, right_node = input().split()
    if left_node == '.':
        left_node = None
    if right_node == '.':
        right_node = None
    Tree[data] = [data, left_node, right_node]
# 전위순회


def pre_order(data: str):
    print(Tree[data][0], end='')
    if Tree[data][1] != None:
        pre_order(Tree[data][1])
    if Tree[data][2] != None:
        pre_order(Tree[data][2])

# 중위순회


def in_order(data: str):
    if Tree[data][1] != None:
        in_order(Tree[data][1])
    print(Tree[data][0], end='')
    if Tree[data][2] != None:
        in_order(Tree[data][2])
# 후위순회


def post_order(data: str):
    if Tree[data][1] != None:
        post_order(Tree[data][1])
    if Tree[data][2] != None:
        post_order(Tree[data][2])
    print(Tree[data][0], end='')


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