본문 바로가기
개발일지/소프트웨어개발

소프트웨어 개발 - 순회

by 다니엘의 개발 이야기 2023. 1. 15.
320x100

# 소프트웨어 개발 - 순회

 

순회에 대한 개념은 디테일하게는 이해하지 못했다.

그럼에도 신기한 패턴이 있어서 간략한 개요와 함께 포스팅 하려고 한다.

 

#0 개요

 

우선 D, L, R은 각각

현재노드, 왼쪽, 오른쪽

을 의미한다. (D의 영어적 의미를 찾고 싶은데 찾지 못했다. ㅠㅠ)


#1 전위 순회 (preorder traversal)

 

D - L - R

시작은 가장 모체가 되는 “루트 노드”로 시작하여

가장 왼쪽의 노드부터 오른쪽 으로 긁어 오듯이 진행된다.


#2 중위 순회 (inorder traversal)

 

L - D - R

시작은 가장 왼쪽의 자식 노드부터 시작하여

왼쪽 자식노드 - 부모노드 - 오른쪽 자식 노드

이런식으로 반복된다.


#3 후위 순회 (postorder traversal)

 

L - R - D

시작은 마찬가지로 가장 왼쪽, 그다음이 오른쪽, 그다음이 부모.

이런식으로 흘러간다.


#4 결론

 

디테일하게는 잘 모르겠다.

그냥 감으로 알 수 있는 정도가 나의 지금이다.

하지만 확실한게 있다.

아무리 거쳐가는 노드가 많더라도

전위 순회의 시작은 반드시 루트 노드 이고

중위 순회의 중앙은 반드시 루트 노드 이고

후위 순회의 마지막은 반드시 루트 노드 이라는 점이다.

300x250