가오리의 코딩일기

[1991] 트리 순회 본문

Python/백준

[1991] 트리 순회

류경혜 2022. 8. 21. 22:00

n = int(input())
tree = [[0] * 3 for _ in range(26)]


def preorder(x):
    # root -> left -> right
    print(x, end='')
    if tree[ord(x)-65][1] != '.':
        preorder(tree[ord(x)-65][1])
    if tree[ord(x)-65][2] != '.':
        preorder(tree[ord(x)-65][2])


def inorder(x):
    # left -> root -> right
    if tree[ord(x)-65][1] != '.':
        inorder(tree[ord(x)-65][1])
    print(x, end='')
    if tree[ord(x)-65][2] != '.':
        inorder(tree[ord(x)-65][2])


def postorder(x):
    # left -> right -> root
    if tree[ord(x)-65][1] != '.':
        postorder(tree[ord(x)-65][1])
    if tree[ord(x)-65][2] != '.':
        postorder(tree[ord(x)-65][2])
    print(x, end='')


for i in range(n):
    node, left, right = map(str, input().split())
    ordNode = ord(node) - 65
    tree[ordNode][0], tree[ordNode][1], tree[ordNode][2] = node, left, right

preorder("A")
print()
inorder("A")
print()
postorder("A")

'Python > 백준' 카테고리의 다른 글

[1780] 종이의 개수  (0) 2022.08.21
[10816] 숫자카드2  (0) 2022.08.21
[2331] 반복수열  (0) 2022.08.21
[2178] 미로 탐색  (0) 2022.08.21
[2667] 단지번호 붙이기  (0) 2022.08.21