전위 순회 : 루트, 왼, 오
중위 순회 : 왼, 루트, 오
후위 순회 : 왼, 오, 루트
딕셔너리 타입으로 데이터를 받는다.
key = 루트, value = [left, right]
각 순회별로, 루트를 출력하는 위치를 정한다.
왼쪽 (or 오른쪽) 노드가 존재하면, 그 값을 루트노드로 하는 재귀함수를 실행한다.
import sys
n = int(sys.stdin.readline())
dic = {}
for i in range(n):
root, left, right = sys.stdin.readline().split()
dic[root] = [left, right]
print(dic)
def preorder(x):
print(x, end="")
if dic[x][0] != ".":
preorder(dic[x][0])
if dic[x][1] != ".":
preorder(dic[x][1])
def inorder(x):
if dic[x][0] != ".":
inorder(dic[x][0])
print(x, end="")
if dic[x][1] != ".":
inorder(dic[x][1])
def postorder(x):
if dic[x][0] != ".":
postorder(dic[x][0])
if dic[x][1] != ".":
postorder(dic[x][1])
print(x, end="")
preorder('A')
print()
inorder('A')
print()
postorder('A')