백준 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')
'Algorithms과 자료구조 > 그래프(vertex, edge, node, arc), BFS, DFS,' 카테고리의 다른 글
최단 경로 문제_다익스트라, 플로이드 와샬 알고리즘 (0) | 2021.11.25 |
---|---|
위상정렬_백준 1948 임계경로 (0) | 2021.11.24 |
위상정렬_백준 1432 그래프수정_파이썬 (0) | 2021.11.24 |
위상정렬(topological sorting)_백준 2252 줄세우기_파이썬 (0) | 2021.11.23 |
최소 스패닝 트리_크루스칼,프림 알고리즘 (0) | 2021.11.22 |