목차
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번에 구현한 것을 사용합니다.
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
'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 |
댓글