아래 그림과 같은 이진트리를 전위순회와 후위순회를 연습해보세요.
전위순회 출력 : 1 2 4 5 3 6 7
중위순회 출력 : 4 2 5 1 6 3 7
후위순회 출력 : 4 5 2 6 7 3 1
#import sys
#sys.stdin = open('input.txt', 'rt')
# 전위순회
def DFS1(n):
if n > 7:
return ''
else:
return str(n)+DFS1(2*n)+DFS1(2*n+1)
# 중위순회
def DFS2(n):
if n > 7:
return ''
else:
return DFS2(2*n)+str(n)+DFS2(2*n+1)
# 후위순회
def DFS3(n):
if n > 7:
return ''
else:
return DFS3(2*n)+DFS3(2*n+1)+str(n)
if __name__ == '__main__':
# 전위순회
res = DFS1(1)
print(res)
# 중위순회
res = DFS2(1)
print(res)
# 후위순회
res = DFS3(1)
print(res)
'Algorithm > Python' 카테고리의 다른 글
046 - 합이 같은 부분집합(DFS) (0) | 2023.08.25 |
---|---|
045 - 부분집합 구하기(DFS) (0) | 2023.08.25 |
043 - 재귀함수를 이용한 이진수 출력 (0) | 2023.08.24 |
042 - 최대힙 (0) | 2023.08.24 |
041 - 최소힙 (0) | 2023.08.24 |