https://www.acmicpc.net/problem/1991
1991번: 트리 순회
첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파
www.acmicpc.net
트리를 처음 접했다.
유튜브에서 트리구조 강의를 보고 풀었다.
처음으로 클래스를 사용했다.
계속보다보니 신기하다.
전위순회= 루트-왼쪽-오른쪽
중위순회=왼쪽-루트-오른쪽
후위순회=왼쪽-오른쪽-루트
import sys
input=sys.stdin.readline
class Node():
def __init__(self,current_node,left_node,right_node):
self.current=current_node
self.left=left_node
self.right=right_node
def 전위순회(node):
print(node.current,end='')
if node.left !='.':
전위순회(tree[node.left])
if node.right !='.':
전위순회(tree[node.right])
def 중위순회(node):
if node.left !='.':
중위순회(tree[node.left])
print(node.current,end='')
if node.right !='.':
중위순회(tree[node.right])
def 후위순회(node):
if node.left !='.':
후위순회(tree[node.left])
if node.right !='.':
후위순회(tree[node.right])
print(node.current,end='')
n=int(input())
tree={}
for _ in range(n):
current_node,left_node,right_node=input().strip().split()
tree[current_node]=Node(current_node,left_node,right_node)
전위순회(tree["A"])
print()
중위순회(tree["A"])
print()
후위순회(tree["A"])'boj' 카테고리의 다른 글
| 백준4179불! (0) | 2022.05.07 |
|---|---|
| 백준 2023 신기한 소수 (0) | 2022.05.05 |
| 백준 1261 알고스팟 (0) | 2022.05.03 |
| 백준 9663 n-queen (0) | 2022.05.02 |
| 백준 2293 동전1 (0) | 2022.05.01 |