이진트리 순회(깊이우선탐색)
2974 단어 파이썬 알고리즘 문제풀이파이썬 알고리즘 문제풀이
완전탐색 (백트랙킹, 상태트리와 CUT EDGE)-DFS(깊이우선탐색)기초
문제 ✏️
이진트리 순회(깊이우선탐색)
아래 그림과 같은 이진트리를 전위순회와 후위순회를 연습해보세요.
전위순회 출력 : 1 2 4 5 3 6 7
중위순회 출력 : 4 2 5 1 6 3 7
후위순회 출력 : 4 5 2 6 7 3 1
코드 💻
'''
전위순회 : 자기자신(부모)을 먼저 출력 -> 왼쪽, 오른쪽 자식으로 이동
중위순회 : 왼쪽 자식 -> 부모 -> 오른쪽 자식
후위순회 : 왼쪽 자식 -> 오른쪽 자식 -> 부모
부모가 D(1)이라면,
왼쪽 자식은 D(1*2), 오른쪽 자식은(D*2+1)
대부분의 방식은 전위순회이나, 병합정렬에서는 후위순회 쓰임
'''
import sys
def DFS(v): # 깊이 : v
if v > 7:
return
else:
print(v, end = " ") # 전위순회
DFS(v*2) # 왼쪽 자식 노드
print(v, end = " ") # 중위순회
DFS(v*2+1) # 오른쪽 자식 노드
print(v, end = " ") # 후위순회
if __name__ == "__main__":
DFS(1)
참고
- 인프런 : 파이썬 알고리즘 문제 풀이
Author And Source
이 문제에 관하여(이진트리 순회(깊이우선탐색)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jsj3282/이진트리-순회깊이우선탐색저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)