반응형
문제
https://www.acmicpc.net/problem/1991
순회는 이전에 풀어봤던 기억이있다.
그대로 구현해 주면 되는데 문자열 입력받고 출력하는거라 문자를 아스키코드로 변환해
주는 ord함수를 사용하였다.
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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | import sys N=int(sys.stdin.readline()) #이진트리 tree=[[] for _ in range(N+1)] for _ in range(N): s=list(map(str,sys.stdin.readline().split())) c=ord(s[0])-64 for i in range(1,3): tree[c].append(ord(s[i])-64) #전위순회 def pre_order(start): print(chr(start + 64), end="") if tree[start][0] != -18: pre_order(tree[start][0]) if tree[start][1] != -18: pre_order(tree[start][1]) #중위순회 def in_order(start): if tree[start][0]!=-18: in_order(tree[start][0]) print(chr(start+64),end="") if tree[start][1]!=-18: in_order(tree[start][1]) #후위순회 def post_order(start): if tree[start][0]!=-18: post_order(tree[start][0]) if tree[start][1]!=-18: post_order(tree[start][1]) print(chr(start + 64), end="") pre_order(1) print() in_order(1) print() post_order(1) | cs |
반응형
'알고리즘(python) > 자료구조' 카테고리의 다른 글
[Python]트리 백준 5639 (1) | 2020.03.21 |
---|---|
[Python]트리 백준 2263 (1) | 2020.03.17 |
[Python]트리 백준 1967 (3) | 2020.03.15 |
[Python]트리 백준 1167 (1) | 2020.03.15 |
[Python]트리 백준 11725 (0) | 2020.03.15 |
최근댓글