접근
트리를 표현하기 위해 Node 라는 클래스를 정의하고 이를 tree에 저장해주었다.
순회 순서에 맞게 출력하는 함수를 작성해주면 된다.
코드
class Node:
def __init__(self, item, left, right):
self.item = item
self.left = left
self.right = right
def preorder(node):
print(node.item, end='')
if node.left != '.':
preorder(tree[node.left])
if node.right != '.':
preorder(tree[node.right])
def inorder(node):
if node.left != '.':
inorder(tree[node.left])
print(node.item, end='')
if node.right != '.':
inorder(tree[node.right])
def postorder(node):
if node.left != '.':
postorder(tree[node.left])
if node.right != '.':
postorder(tree[node.right])
print(node.item, end='')
n = int(input())
tree = {}
for _ in range(n):
node, left, right = map(str, input().split())
tree[node] = Node(node, left, right)
preorder(tree['A'])
print()
inorder(tree['A'])
print()
postorder(tree['A'])
print()
더 생각해 볼 것?
...
코드나 내용 관련 조언, 부족한 점 및 질문 언제든 환영합니다!
반응형
'코딩 > 백준 (Python)' 카테고리의 다른 글
백준 5639번: 이진 검색 트리 (Python) (0) | 2021.04.29 |
---|---|
백준 2263번: 트리의 순회 (Python) (0) | 2021.04.29 |
백준 1167번: 트리의 지름 (Python) (2) | 2021.04.28 |
백준 11725번: 트리의 부모 찾기 (0) | 2021.04.28 |
백준 11780번: 플로이드 2 (Python) (0) | 2021.04.28 |
최근댓글