Algorithm (PS)

[백준] 1991 트리 순회

minjiwoo 2022. 1. 28. 17:31
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