백준) 1991 트리 순회

박복만·2021년 7월 11일
0

알고리즘_백준

목록 보기
2/7


접근방법

  • 이진트리를 입력 받았다.
  • 입력을 트리로 구현하고
  • 요구하는 순회 방법대로 순회한다.

코드

n = int(input())
tree = {}
for _ in range(n):
    a,b,c = input().split()
    tree[a] = [b,c]

def preorder(v): # 전위순회
    if v == '.':
        return
    print(v, end="") # 루트를 먼저 출력하고
    preorder(tree[v][0]) # 왼쪽 하위 서브트리를 전부 출력한다.
    preorder(tree[v][1]) # 그다음 오른쪽 하위 서브트리 출력

def inorder(v): # 중위순회
    if v== '.':
        return
    inorder(tree[v][0]) # 왼쪽 하위 서브트리를 전부 출력한후
    print(v,end="") # 루트노드를 출력하고
    inorder(tree[v][1]) # 오른쪽 하위 노드를 전부 출력한다.

def postorder(v): # 후위순회
    if v=='.':
        return
    postorder(tree[v][0]) # 오른쪽 하위 서브트리를 전부 출력하고
    postorder(tree[v][1]) # 왼쪽 하위 서브트리를 전부 출력하고
    print(v, end = "") # 루트 노드를 전부 출력한다.

preorder('A')
print()
inorder('A')
print()
postorder('A')

챙겨갈점

  • 전위순회, 중위순회, 후위순회 개념
profile
병신

0개의 댓글