https://www.acmicpc.net/problem/1991
import sys
input = sys.stdin.readline
n = int(input())
tree = {}
for _ in range(n):
n, l, r = sys.stdin.readline().strip().split()
tree[n] = [l, r]
def inorder(node):
if node != '.':
inorder(tree[node][0])
print(node, end='')
inorder(tree[node][1])
def preorder(node):
if node != '.':
print(node, end='')
preorder(tree[node][0])
preorder(tree[node][1])
def postorder(node):
if node != '.':
postorder(tree[node][0])
postorder(tree[node][1])
print(node, end='')
preorder('A')
print()
inorder('A')
print()
postorder('A')
딕셔너리를 이용해서 문제를 풀었다.
tree[parent_node] = [left_node, right_node]로 입력받아 전위,중위,후위 순회에 맞게 출력했다.