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)