작성
·
85
0
class Node {
constructor(value) {
this.value = value;
this.left = null;
this.right = null;
}
}
class BinarySearchTree {
constructor() {
this.root = null;
}
#insert(node, value) {
if (node.value > value) {
// 루트노드보다 작은 값이면
if (node.left) {
this.#insert(node.left, value);
} else {
node.left = new Node(value);
}
} else {
// 숙제 : 같은 값을 넣은경우 에러 처리 (alert, throw)
if (node.value === value)
throw new Error(`이미 해당 ${value}가 존재 합니다`);
// 루트노드보다 큰 값이면
if (node.right) {
this.#insert(node.right, value);
} else {
node.right = new Node(value);
}
}
}
insert(value) {
if (!this.root) {
this.root = new Node(value);
} else {
this.#insert(this.root, value);
// 숙제 : 같은 값을 넣은경우 에러 처리 (alert, throw)
}
}
search(value) {}
remove(value) {}
}
const bst = new BinarySearchTree();
bst.insert(8);
//bst.insert(8); // Error: 이미 해당 8가 존재 합니다
bst.insert(10);
//bst.insert(10); // Error: 이미 해당 10가 존재 합니다
bst.insert(3);
//bst.insert(3); // Error: 이미 해당 3가 존재 합니다
bst.insert(1);
//bst.insert(1); // Error: 이미 해당 1가 존재 합니다
bst.insert(14);
//bst.insert(14); // Error: 이미 해당 14가 존재 합니다
bst.insert(6);
//bst.insert(6); // Error: 이미 해당 6가 존재 합니다
bst.insert(7);
//bst.insert(7); // Error: 이미 해당 7가 존재 합니다
bst.insert(4);
//bst.insert(4); // Error: 이미 해당 4가 존재 합니다
bst.insert(13);
//bst.insert(13); // Error: 이미 해당 13가 존재 합니다
숙제 코드 정답일까요?
오호!!! 그렇군요 감사합니다! 🤣