graph traversal(백준 1991 python)

HJ seo·2022년 7월 27일
0

Coding Test(Python)

목록 보기
3/45

문제 링크

rooted binary tree의 세 가지 탐색법(전위,중위,후위 순회)를 알고 있는지 물어보는 문제였다.

root가 A로 고정되어 있고, 각각의 줄이 차례대로 node와 node의 left child,right child로 이루어져 있었기 때문에 hash와 tuple을 써서 그래프를 구현했고, 이에 따라 함수 역시 개념대로 쓰면 되는 문제였다.

from sys import stdin

n = int(input())

graph = dict()
for i in range(n):
    par,chi,chi2 = map(str,stdin.readline().strip().split())
    graph[par] = (chi,chi2)
    
def before(node):
    if node != '.':
        print(node,end = '')
        before(graph[node][0])
        before(graph[node][1])
    else:
        return

def mid(node):
    if node == '.':
        return
    else:
        mid(graph[node][0])
        print(node,end='')
        mid(graph[node][1])
        
    
def after(node):
    if node == '.':
        return
    else:
        after(graph[node][0])
        after(graph[node][1])
        print(node,end='')

node = 'A'

before(node)
print()
mid(node)
print()
after(node)
profile
다양한 분야에 관심이 많은 초보 개발자 입니다.

0개의 댓글