본문 바로가기
Computer Science/Data Structure

이진트리 - 정의와 순회

by 데이터현 2022. 1. 1.

이진트리를 노드와 링크를 통해 직접 구현하도록 한다.

key, left, right, parent

 

class Node:
    def __init__(self, key):
        self.key = key
        self.parent = None
        self.left = None
        self.right = None
    def __str__(self):
        return str(self.key)

 

이진트리 순회(trabersal)

1. preorder (전위)

2. inorder (중위)

3. postorder (후위)

 

preorder -> MLR

inorder -> LMR

postorder -> LRM

 

preoder : F B A D C E G I H

inorder : A B C D E F G H I

postorder : A C E D B H I G F

 

class Node:
    def __init__():
        pass
    def preorder(self):
        if self != None:
            print(self.key)
            if self.left:
                self.left.preorder()
            if self.right:
                self.right.preorder()
    def inorder(self):
        if self != None:
            if self.left:
                self.left.inorder()
            print(self.key)
            if self.right:
                self.right.inorder()
    def postorder(self):
        if self != None:
            if self.left:
                self.left.postorder()
            if self.right:
                self.right.postorder()
            print(self.key)

 

 

참고 - https://www.youtube.com/watch?v=HDjqrmmpFdU&list=PLsMufJgu5933ZkBCHS7bQTx0bncjwi4PK&index=24

댓글