본문 바로가기

Algorithm/Python

044 - 이진트리 순회(깊이우선탐색)

아래 그림과 같은 이진트리를 전위순회와 후위순회를 연습해보세요.

 

 

전위순회 출력 : 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