practivceAlgorithm/swexpertacademy
[SWEA][Python] 1231 중위순회
findTheValue
2021. 9. 23. 23:40
이진탐색트리의 중위 순회
import sys
sys.stdin = open('input.txt')
def inorder_tree(cur_node):
if not tree[cur_node]:
return values[cur_node]
elif len(tree[cur_node]) == 1:
return inorder_tree(tree[cur_node][0]) + values[cur_node]
return inorder_tree(tree[cur_node][0]) + values[cur_node] + inorder_tree(tree[cur_node][1])
for test in range(1, 11):
N = int(input())
tree = {i: [] for i in range(1, N+1)}
values = {i: '' for i in range(1, N+1)}
for _ in range(N):
data = input().split()
values[int(data[0])] = data[1]
if len(data) == 3:
tree[int(data[0])] += [int(data[2])]
elif len(data) == 4:
tree[int(data[0])] += [int(data[2])]
tree[int(data[0])] += [int(data[3])]
answer = inorder_tree(1)
print(f'#{test} {answer}')