흰 스타렉스에서 내가 내리지

[자료구조] 트리에서의 4가지 순회 방법 본문

Data Structure

[자료구조] 트리에서의 4가지 순회 방법

주씨. 2022. 1. 2. 10:58
728x90

전위 순회 (Preorder Traversal)

def preorder(cur):
    if not cur:
        return
    
    print(cur.data, end=' ')
    preorder(cur.left)
    preorder(cur.right)

중위 순회 (Inorder Traversal)

def inorder(cur):
    if not cur:
        return
    
    inorder(cur.left)
    print(cur.data, end=' ')
    inorder(cur.right)

후위 순회 (Postorder Traversal)

def postorder(cur):
    if not cur:
        return
    
    postorder(cur.left)
    postorder(cur.right)
    print(cur.data, end=' ')

레벨 순서 순회 (Levelorder Traversal)

from queue import Queue

def levelorder(cur):
    q = Queue()
    
    q.put(cur)
    while not q.empty():
        cur = q.get()
        print(cur.data, end=' ')
        
        if cur.left:
            q.put(cur.left)
        if cur.right:
            q.put(cur.right)