boj1991 - 트리

먼지감자·2021년 6월 15일
0

코딩테스트

목록 보기
21/37

문제

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

코드

import sys
input = sys.stdin.readline

class node:
    def __init__(self, item, left,right):
        self.item = item
        self.left = left
        self.right = right

def preorder(node):
    print(node.item, end='')
    if node.left != '.':
        preorder(tree[node.left])
    if node.right != '.':
        preorder(tree[node.right])

def inorder(node):
    if node.left != '.':
        inorder(tree[node.left])
    print(node.item, end='')
    if node.right != '.':
        inorder(tree[node.right])

def postorder(node):
    if node.left != '.':
        postorder(tree[node.left])
    if node.right != '.':
        postorder(tree[node.right])
    print(node.item, end='')

n = int(input())
tree={}
for _ in range(n):
    i,l,r = input().split()
    tree[i] = node(i,l,r)

preorder(tree['A'])
print()
inorder(tree['A'])
print()
postorder(tree['A'])

설명

자기자신(item)과 왼쪽 자식, 오른쪽 자식을 갖는 class를 만들어 이진트리의 각 노드 구현

profile
ML/AI Engineer

0개의 댓글