Part5.2_완전탐색-DFS기초_이진트리순회(DFS)

Eugenius1st·2022년 1월 20일
0

Python_algorithm

목록 보기
30/83

이진트리순회(DFS)


이제 왼쪽값 오른쪽 값 어떻게 출력하나 ??

트리 노드값을 봐보자
규칙이 있다면 이러하다
부모 노드값 ------------- (1)
................................................../.......|
자식 노드값 ------(부모2) (부모2+1)

전위순회

def DFS(v):
    if v > 7:
        return # 그냥 함수를 종료해라 !!
    else:
        print(v, end=" ")
        DFS(v*2)
        DFS(v*2+1)       
if __name__ == "__main__":
    DFS(1)   

자기의 일을 우선으로 한 후 넘어가는 것

중위순회

def DFS(v):
    if v > 7:
        return # 그냥 함수를 종료해라 !!
    else:
        DFS(v*2)
        print(v, end=" ")
        DFS(v*2+1)
if __name__ == "__main__":
    DFS(1)   

자기의 일을 중간에서 한 후 넘어가는 것

후위순회

#import sys
#sys.stdin = open("input.txt", "rt")

def DFS(v):
    if v > 7:
        return # 그냥 함수를 종료해라 !!
    else:
        DFS(v*2)
        DFS(v*2+1)
        print(v, end=" ")
if __name__ == "__main__":
    DFS(1)   
    #1 2 4
    #4 5 2 6 7 3 1

자기의 일을 마지막에서 하고 넘어가는 것

profile
최강 프론트엔드 개발자가 되고싶은 안유진 입니다

0개의 댓글