728x90
자료구조 시간에 트리 구조 배웠을 때 처럼 !! 재귀 함수를 이용하여 트리를 순회할 수 있다.
+ 트리 자료구조를 다시 정리하자 !
# 1991 트리 순회
n = int(input())
tree = {} # dictionary type
for i in range(n):
root, left, right = input().split()
tree[root] = [left, right] # key, value
#preorder root - left - right
def preorder(root):
if root != '.':
print(root, end='') # root
preorder(tree[root][0]) # left
preorder(tree[root][1]) # right
# inorder left - root - right
def inorder(root):
if root != '.':
inorder(tree[root][0]) # left
print(root, end='') # root
inorder(tree[root][1]) # right
# postorder left - right - root
def postorder(root):
if root != '.':
postorder(tree[root][0]) # left
postorder(tree[root][1]) #right
print(root, end='') # root
preorder('A')
print()
inorder('A')
print()
postorder('A')
728x90
'Algorithm (PS)' 카테고리의 다른 글
[백준] 1699 제곱수의 합 <부제: 너무 느린 파이썬 극복하기;;> (0) | 2022.02.01 |
---|---|
[백준] 11054 가장 긴 바이토닉 부분 수열 in python (0) | 2022.01.31 |
[백준] 18353 병사 배치하기 (0) | 2022.01.27 |
[백준] 9663 N-Queen Python 풀이 와 백트래킹, 그리고 DFS의 비효율적인 사용 (0) | 2022.01.27 |
[백준] 11728 배열 합치기 in Python + 반복문 대신 join()으로 출력하기 (0) | 2022.01.26 |