설명
- 입력 값들을 트리에 저장하기 위해 dictionary를 사용한다.
- 입력받은
각 노드
, 왼쪽 자식 노드
, 오른쪽 자식 노드
값을 각 노드
는 key로, 왼쪽 자식 노드
와 오른쪽 자식 노드
는 리스트로 저장한다.
ex) {A: [B, C]}
- root가
.
이 아닐 때에만, 트리 순회를 재귀 함수로 진행한다. 재귀함수로 깊이 들어가 순회 결과를 출력한다.
- preorder:
root
-> left
-> right
- inorder:
left
-> root
-> right
- postorder:
left
-> right
-> root
코드
from sys import stdin as s
s = open("input.txt", "rt")
N = int(s.readline())
tree = {}
for i in range(N):
root, left, right = s.readline().split()
tree[root] = [left, right]
def preorder(root):
if root != '.':
print(root, end='')
preorder(tree[root][0])
preorder(tree[root][1])
def inorder(root):
if root != '.':
inorder(tree[root][0])
print(root, end='')
inorder(tree[root][1])
def postorder(root):
if root != '.':
postorder(tree[root][0])
postorder(tree[root][1])
print(root, end='')
preorder('A')
print()
inorder('A')
print()
postorder('A')
print()