본문 바로가기
PS/백준

백준 1991번 트리순회 python 파이썬

by 지기_ 2021. 8. 6.
반응형

1. 문제

https://www.acmicpc.net/problem/1991

 

1991번: 트리 순회

첫째 줄에는 이진 트리의 노드의 개수 N(1≤N≤26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 영문자

www.acmicpc.net

 

2. 풀이

 

3. 구현

import sys
#sys.stdin=open('input.txt')

n = int(sys.stdin.readline().strip())
tree={}

while n:
    n-=1
    root,left,right = sys.stdin.readline().strip().split()
    tree[root] = [left, right]

def preorder(root):
    if root!='.':
        sys.stdout.write(root)
        preorder(tree[root][0]) #left
        preorder(tree[root][1]) #right

def inorder(root):
    if root!='.':
        inorder(tree[root][0])
        sys.stdout.write(root)
        inorder(tree[root][1])

def postorder(root):
    if root!='.':
        postorder(tree[root][0])
        postorder(tree[root][1])
        sys.stdout.write(root)

preorder('A')
print()
inorder('A')
print()
postorder('A')
반응형

댓글