rooted binary tree의 세 가지 탐색법(전위,중위,후위 순회)를 알고 있는지 물어보는 문제였다.
root가 A
로 고정되어 있고, 각각의 줄이 차례대로 node와 node의 left child,right child로 이루어져 있었기 때문에 hash와 tuple을 써서 그래프를 구현했고, 이에 따라 함수 역시 개념대로 쓰면 되는 문제였다.
from sys import stdin
n = int(input())
graph = dict()
for i in range(n):
par,chi,chi2 = map(str,stdin.readline().strip().split())
graph[par] = (chi,chi2)
def before(node):
if node != '.':
print(node,end = '')
before(graph[node][0])
before(graph[node][1])
else:
return
def mid(node):
if node == '.':
return
else:
mid(graph[node][0])
print(node,end='')
mid(graph[node][1])
def after(node):
if node == '.':
return
else:
after(graph[node][0])
after(graph[node][1])
print(node,end='')
node = 'A'
before(node)
print()
mid(node)
print()
after(node)