[자료구조] 이진탐색트리 구현 - 최솟값, 최댓값 찾기 / 특정 값 찾기
2021. 3. 17. 12:11ㆍFront-end/자료구조
728x90
반응형
최솟값/최댓값 찾기 (min(), max())
이진탐색트리에서 최솟값은 맨 왼쪽 노드값이고, 최댓값은 맨 오른쪽 노드값이다.
그러므로 최솟값을 구하는 메소드 min(), 최댓값을 구하는 메소드 max()는 다음과 같이 구현할 수 있다.
//최솟값 찾기
min(){
return this.minNode(this.root);
}
minNode(node){
if(node){
while(node && node.left !== null){
node = node.left;
}
return node.key;
}
return null;
}
//최댓값 찾기
max(){
return this.maxNode(this.root);
}
maxNode(node){
if(node){
while(node && node.right !== null){
node = node.right;
}
return node.key;
}
return null;
}
사용하는 코드
console.log(`최솟값: ${tree.min()}`);
console.log(`최댓값: ${tree.max()}`);
특정 값 찾기(search(key))
//특정값 찾기
search(key){
return this.searchNode(this.root, key);
}
searchNode(node, key){
if(node === null){
return false;
}else if(key < node.key){
return this.searchNode(node.left, key);
}else if(key > node.key){
return this.searchNode(node.right, key);
}else{
return true;
}
}
사용하는 코드
console.log(tree.search(1) ? '키 1을 찾았습니다.' : '키 1을 찾지 못했습니다.');
console.log(tree.search(8) ? '키 8을 찾았습니다.' : '키 8을 찾지 못했습니다.');
728x90
반응형
'Front-end > 자료구조' 카테고리의 다른 글
[자바스크립트 자료구조] 힙(Heap) - (1) 최소힙, 최대힙 구현 (0) | 2021.03.24 |
---|---|
[자료구조] 이진탐색트리 구현 - 삭제 (0) | 2021.03.17 |
[자료구조] 이진탐색트리 구현 - 중위순회, 전위순회, 후위순회 메소드 (0) | 2021.03.16 |
[자료구조] 이진탐색트리 구현 - 기본 뼈대, insert 메소드 (0) | 2021.03.15 |
[자료구조] 트리 - 이진 탐색 트리(Binary Search Tree) (0) | 2021.03.15 |