PS/solved.ac
[CLASS 4]백준 1991번 - 트리 순회
DawIT
2021. 3. 9. 03:14
320x100
1991번 : 트리 순회
트리를 순회하는 세 가지 방법을 구현하면 된다. 재귀로 구현하되 탐색 순서(answer문자열에 노드를 추가하는 순서)만 달리해주면 쉽게 구현할 수 있다.
내 코드:
# dawitblog.tistory.com
from sys import stdin
input = stdin.readline
dic = {}
def preOrder(node):
global answer
answer += node
if dic[node][0] != '.':
preOrder(dic[node][0])
if dic[node][1] != '.':
preOrder(dic[node][1])
def inOrder(node):
global answer
if dic[node][0] != '.':
inOrder(dic[node][0])
answer += node
if dic[node][1] != '.':
inOrder(dic[node][1])
def postOrder(node):
global answer
if dic[node][0] != '.':
postOrder(dic[node][0])
if dic[node][1] != '.':
postOrder(dic[node][1])
answer += node
for _ in range(int(input())):
conn = input().split()
dic[conn[0]] = (conn[1],conn[2])
answer = ''
preOrder('A')
print(answer)
answer = ''
inOrder('A')
print(answer)
answer = ''
postOrder('A')
print(answer)
탐색 순서에 따라 answer += node 의 위치가 바뀐다.