정우의 개발 일지

2022.11.08 알고리즘 정리 본문

알고리즘

2022.11.08 알고리즘 정리

이정우 2022. 11. 8. 15:22

이진 트리

트리 생성

class TreeNode():
    def __init__(self):
        self.left = None
        self.data = None
        self.right = None
        
node1 = TreeNode()
node1.data = '승민'

node2 = TreeNode()
node2.data = '승권'
node1.left = node2

node3 = TreeNode()
node3.data = '선모'
node1.right = node3

print(node1.data, end = ' ')
print(node1.left.data, node1.right.data, end = ' ')

출력 결과

승민 승권 선모 

 

전위 순회 함수

def preorder(node):
    if node == None:
        return
    print(node.data, end='->')
    preorder(node.left)
    preorder(node.right)

 

중위 순회 함수

def inorder(node):
    if node == None:
        return
    inorder(node.left)
    print(node.data, end='->')
    inorder(node.right)

 

후위 순회 함수

def postorder(node):
    if node == None:
        return
    postorder(node.left)
    postorder(node.right)
    print(node.data, end='->')

 

순회 결과

print('전위 순회: ', end = ' ')
preorder(node1)
print('끝')

print('중위 순회: ', end = ' ')
inorder(node1)
print('끝')

print('후위 순회: ', end = ' ')
postorder(node1)
print('끝')

출력 결과

전위 순회:  승민->승권->선모->끝
중위 순회:  승권->승민->선모->끝
후위 순회:  승권->선모->승민->끝

'알고리즘' 카테고리의 다른 글

2022.10.11 알고리즘 정리  (0) 2022.10.11
2022.10.04 알고리즘 정리  (0) 2022.10.04
2022.09.27 알고리즘 정리  (0) 2022.09.27
Comments