Binary Tree Traversal (이진트리 순회)

김상윤·2022년 8월 2일
0

Algorithm

목록 보기
12/19

이진트리 순회

이진트리의 노드

  • Left 자식노드 = 부모노드 * 2
  • Right 자식노드 = (부모노드 * 2) + 1

순회 종류

  • 전위 순회 : Root -> Left -> Right
  • 중위 순회 : Left -> Root -> Right
  • 후휘 순회 : Left -> Right -> Root

구현

  • 전위순회
def preorder(x) :
    if x <= n: #노드개수 내의 범위
   #if x != None:
   		print(x, end='') #Root 동작 수행
        preorder(x*2) #왼쪽 자식 노드 호출
        preorder(x*2+1) #오른쪽 자식 노드 호출
  • 중위순회
def inorder(x) :
    if x <= n: #노드개수 내의 범위
   #if x != None:
        inorder(x*2) #왼쪽 자식 노드 호출
        print(x, end='') #Root 동작 수행
        inorder(x*2+1) #오른쪽 자식 노드 호출
  • 후위순회
def postorder(x) :
    if x <= n: #노드개수 내의 범위
   #if x != None:
        postorder(x*2) #왼쪽 자식 노드 호출
        postorder(x*2+1) #오른쪽 자식 노드 호출
   		print(x, end='') #Root 동작 수행

0개의 댓글