Agorithm/백준 알고리즘
백준 알고리즘 1991번 트리 순회(python)
kimjinho1
2021. 3. 17. 19:47
728x90
반응형
기본적인 트리 문제이다.
- 전위 순회한 결과 : (왼쪽 자식) -> (오른쪽 자식)
- 중위 순회한 결과 : (왼쪽 자식) -> (루트) -> (오른쪽 자식)
- 후위 순회한 결과 : (왼쪽 자식) -> (오른쪽 자식) -> (루트)
def preorder(node):
print(node, end='')
left, right = tree[node][0], tree[node][1]
if left != '.':
preorder(left)
if right != '.':
preorder(right)
def inorder(node):
left, right = tree[node][0], tree[node][1]
if left != '.':
inorder(left)
print(node, end='')
if right != '.':
inorder(right)
def postorder(node):
left, right = tree[node][0], tree[node][1]
if left != '.':
postorder(left)
if right != '.':
postorder(right)
print(node, end='')
N = int(input())
tree = {}
for i in range(1, N+1):
node, left, right = input().split()
tree[node] = [left, right]
preorder('A'); print()
inorder('A'); print()
postorder('A'); print()
728x90
반응형