https://www.acmicpc.net/problem/1991
class Node():
def __init__(self, item, left, right):
self.item = item
self.left = left
self.right = right
먼저 노드를 클래스로 만들었습니다. 값을 String으로 갖고 있고 해당 객체는 tree라는 dictionary에서 호출할 수 있도록 구현했습니다.
import sys
class Node():
def __init__(self, item, left, right):
self.item = item
self.left = left
self.right = right
def preorder(node):
print(node.item, end="")
if node.left != ".":
preorder(tree[node.left])
if node.right != ".":
preorder(tree[node.right])
def inorder(node):
if node.left != ".":
inorder(tree[node.left])
print(node.item, end="")
if node.right != ".":
inorder(tree[node.right])
def postorder(node):
if node.left != ".":
postorder(tree[node.left])
if node.right != ".":
postorder(tree[node.right])
print(node.item, end="")
input = sys.stdin.readline
n = int(input())
tree = {}
for _ in range(n):
item, left, right = input().split()
tree[item] = Node(item, left, right)
preorder(tree["A"])
print()
inorder(tree["A"])
print()
postorder(tree["A"])