●이진검색트리의 특징
부모를 기준으로 부모보다 큰 데이터 오른쪽에, 작은 데이터는 왼쪽에.
따라서 루트를 중심으로 오른쪽 끝까지 찾아가면 최댓값을 찾을 수 있다.
왼쪽 끝까지 찾아가면 최솟값을 찾을 수 있다.
●최댓값, 최솟값 찾는 과정 구현
typedef struct TREE {
int value;
struct TREE* left;
struct TREE* right;
} TREE;
TREE* findMax(TREE* t) {
if(t) {
while(t->right)
t = t->right;
return t;
}
}
TREE* findMin(TREE* t) {
if(t->left)
t = findMin(t->left)
return t;
}
반복문으로 구현할 수 있으면 반복문으로 구현하는 것이 좋다.
최댓값은 반복문으로, 최솟값은 재귀호출로 구현해보았다.
'자료구조 & 알고리즘' 카테고리의 다른 글
힙(Heap), 힙화(Heapify), 최댓값, 최솟값 구하기, 구현 (0) | 2023.02.25 |
---|---|
이진탐색트리 노드 삭제 개념, 구현 (0) | 2023.02.24 |
이진 탐색 트리 특징, 노드삽입, 구현 (0) | 2023.02.22 |
트리 순회 구현 (0) | 2023.02.21 |
트리의 용어, 종류, 트리 순회 (0) | 2023.02.20 |
댓글