Algorithm/SW Expert Academy

[Python] 1231. 중위 순회

느낌표 공장장 2021. 9. 23. 23:11
# 중위 순회
def in_order(n):
if n:
in_order(left[n])
print(tree[n], end='') # 정점의 알파벳 출력
in_order(right[n])
for idx in range(1, 11):
n = int(input())
tree = [0 for _ in range(n+1)] # 트리(알파벳)
left = [0 for _ in range(n+1)] # 왼쪽 자식 받을거야
right = [0 for _ in range(n+1)] # 오른쪽 자식 받을거야
# 정점 정보를 받아올 때, 맨앞에 정점번호 int로 바꿔주기 귀찮으니 i로 한다. (1부터 n까지의 정수라고 주어짐)
for i in range(1, n+1):
info = input().split() # 정점 정보 받기
tree[i] = info[1] # 트리에 알파벳 넣기
# 자식이 없는 경우는 index 에러가 나니 try except로 해준다.
try:
left[i] = int(info[2]) # 왼쪽 자식
right[i] = int(info[3]) # 오른쪽 자식
except IndexError:
continue
print('#{}'.format(idx), end=' ')
in_order(1)
print()

'Algorithm > SW Expert Academy' 카테고리의 다른 글

[Python] 5174. subtree  (0) 2021.09.24
[Python] 1232. 사칙연산  (0) 2021.09.24
[Python] 5105. 미로의 거리  (0) 2021.09.23
[Python] 5102. 노드의 거리  (0) 2021.09.23
[Python] 5099. 피자굽기  (0) 2021.09.23