
문제에서 주어진 노드간의 관계를 트리 형태의 자료구조에 적절하게 저장하고, 그 안에서 탐색을 수행하면 된다.
따라서 인접리스트의 형태로 트리의 관계를 표현하고, 재귀함수를 통해 탐색을 수행하여 문제를 해결하면된다.
import sys
sys.setrecursionlimit(10 ** 6)
input = sys.stdin.readline
N = int(input())
arr = [[] for _ in range(26)]
for _ in range(N):
    node, left, right = input().split()
    arr[ord(node) - ord('A')].append((left, right))
def preorder(node):
    if node != '.':
        left, right = arr[ord(node) - ord('A')][0]
        print(node, end='')
        preorder(left)
        preorder(right)
def inorder(node):
    if node != '.':
        left, right = arr[ord(node) - ord('A')][0]
        inorder(left)
        print(node, end='')
        inorder(right)
def postorder(node):
    if node != '.':
        left, right = arr[ord(node) - ord('A')][0]
        postorder(left)
        postorder(right)
        print(node, end='')
preorder('A')
print()
inorder('A')
print()
postorder('A')