• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

숙제 : 같은 값을 넣은경우 에러 처리

24.06.14 14:49 작성 조회수 67

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가 존재 합니다

숙제 코드 정답일까요?

답변 1

답변을 작성해보세요.

1

네 정답입니다. 근데 저는 else문 안에 if 보다는 else if를 더 좋아하긴 합니다.

rhkdtjd_12님의 프로필

rhkdtjd_12

질문자

2024.06.14

오호!!! 그렇군요 감사합니다! 🤣

채널톡 아이콘