본문 바로가기
cs/자료구조

[Trees]23. Tree Traversal(트리 순회) 구현

by 장인이 2021. 2. 25.

목차

1. class Node, class Tree

2. def pre_order, def post_order

3. main

4. 예상 출력

 

1. class Node, class Tree

 class Node, class Tree는 전 게시물 21번에 구현한 것을 사용합니다.

 

imgzon.tistory.com/62

 

[Trees]21. Tree 구현

목차 1. class Node 2. class Tree 3. def insert_node 4. def del_node 5. def print_chi 6. def print_sib 7. __main__ 8. 예상 입력, 출력 1. class Node class Node: def __init__(self, e: object): self.ele..

imgzon.tistory.com

 

2. def pre_order, def post_order

def pre_order(n):
    print(n.element, end=' ')
    for i in n.child:
        pre_order(i)

def post_order(n):
    for i in n.child:
        post_order(i)
    print(n.element, end=' ')

 

 

3. main

if __name__ == "__main__":
    tree = Tree(1) # root가 1인 tree 만들기
    tree.insert_node(1, 2)
    tree.insert_node(1, 3)
    tree.insert_node(1, 4)
    tree.insert_node(2, 5)
    tree.insert_node(2, 6)
    tree.insert_node(3, 7)
    tree.insert_node(3, 8)
    tree.insert_node(3, 9)
    
    print('Preorder Traversal: ') # 전위 순회 출력
    pre_order(tree.root)
    print()
    
    print('Postorder Traversal: ') # 후위 순회 출력
    post_order(tree.root)
    print()

 

4. 예상 출력

'''
Preorder Traversal: 
1 2 5 6 3 7 8 9 4 
Postorder Traversal:
5 6 2 7 8 9 3 4 1 
'''

 

전체 코드는 github에 올려두었습니다.

github.com/imgzon3/algorithm/blob/main/Tree/pre_post_travel.py

 

imgzon3/algorithm

Contribute to imgzon3/algorithm development by creating an account on GitHub.

github.com

'cs > 자료구조' 카테고리의 다른 글

[Trees]25. Binary Trees Traversal(이진 트리 탐색)  (0) 2021.02.25
[Trees]24. Binary Trees(이진 트리)  (0) 2021.02.25
[Trees]22. Tree Traversal(트리 순회 모음)  (0) 2021.02.25
[Trees]21. Tree 구현  (0) 2021.02.25
[Trees]20. Tree  (0) 2021.02.21

댓글