알고리즘/백준
1991번 트리 순회 백준 파이썬
글을 쓰는 개발자
2020. 12. 15. 20:24
반응형
문제: www.acmicpc.net/problem/1991
1991번: 트리 순회
첫째 줄에는 이진 트리의 노드의 개수 N(1≤N≤26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 영문자
www.acmicpc.net
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
N=int(input())
graph=[[] for _ in range(N)]
for _ in range(N):
dot,left,right=map(str,input().split())
graph[ord(dot)-ord('A')].append(left)
graph[ord(dot)-ord('A')].append(right)
def pre_order(start):
if start!='.':
print(start,end='')
pre_order(graph[ord(start)-ord('A')][0])
pre_order(graph[ord(start)-ord('A')][1])
def in_order(start):
if start!='.':
mid_order(graph[ord(start)-ord('A')][0])
print(start,end='')
mid_order(graph[ord(start)-ord('A')][1])
def post_order(start):
if start!='.':
post_order(graph[ord(start)-ord('A')][0])
post_order(graph[ord(start)-ord('A')][1])
print(start,end='')
pre_order('A')
print()
mid_order('A')
print()
post_order('A')
|
cs |
반응형