티스토리 뷰
이진검색트리같은 이진트리(Binary tree) 구조의 자료구조에서 검색, 출력 등의 이유로 전체 노드들을 방문(visit)하는 것을 순회(traversal)이라고 합니다.
아시다 싶이 이진트리의 구조는 최상위에 루트(root)가 존재하고 좌측에는 왼쪽 서브트리가 , 오른쪽에는 오른쪽 서브트리의 모양을 갖습니다.
대표적인 이진트리 순회 방법에 3가지의 방법이 있습니다. 루트의 방문 순서에 따라 구분이 됩니다.
1. 전위 순회 (Preorder Traversal)
Root -> Left Tree -> Right Tree ( 루트를 제일 처음에 방문 )
2. 중위 순회 (Inorder Traversal)
Left Tree -> Root -> Right Tree ( 루트를 중간에 방문 )
3. 후위 순회 (Postorder Traversal)
Left Tree -> Right Tree -> Root ( 루트를 제일 마지막에 방문 )
가장 흔히 볼 수 있는 이진검색트리(Binary Search Tree) 에서의 검색목적의 전위순회 슈도코드를 살펴보겠습니다.
전위, 중위, 후위의 변환은 코드의 순서 변경 차이 밖에 없습니다.
treeSearch(t, x)
{
/* t : 트리의 루트 노드 , x : 검색하고자 하는 키 */
if(t=NIL or key[t] = x) then return t; // root 탐색
if(x < key[t])
then return treeSearch(left[t], x); // 왼쪽 서브트리 탐색
else return treeSearch(right[t], x); // 오른쪽 서브트리 탐색
}
'프로그래밍 > 자료구조&알고리즘' 카테고리의 다른 글
| 삽입정렬(Insertion Sort) (0) | 2014.04.22 |
|---|---|
| 버블정렬(Bubble Sort) (0) | 2014.04.22 |
| 선택정렬(Selection Sort) (0) | 2014.04.22 |
| 알고리즘이란? (0) | 2014.04.22 |
| 레드블랙 트리(Red-black tree) (0) | 2014.04.15 |
- Total
- Today
- Yesterday
- 삼성전자
- 이펙티브 자바
- codecademy
- 투자전략
- 주식투자
- 웹프로그래밍
- 자료구조
- OpenStack
- Message Queue
- javascript
- 한미반도체
- CSS
- SK하이닉스
- 알고리즘
- install
- ruby
- 프로그래밍
- html
- ubuntu
- Java
- 현대차
- 티스토리 초대장
- rabbitmq
- HBM
- 이수페타시스
- 엔비디아
- 국제유가
- 반도체관련주
- Rails
- ruby on rails
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
