Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

값이 이진 트리에 있는지 또는 JavaScript에 없는지 찾는 방법은 무엇입니까?

<시간/>

우리는 값을 받아서 그 값이 BST에 포함되어 있는지 여부를 찾는 BinarySearchTree 데이터 유형의 프로토타입 객체에 JavaScript 함수를 작성해야 합니다.

예시

이에 대한 코드는 -

입니다.
// class for a single Node for BST
class Node {
   constructor(value) {
      this.value = value;
   }
}
// class for BST
// contains function to insert node and search for existing nodes
class BinarySearchTree {
   constructor() {
      this._root = null;
   };
   insert(value) {
      let node = this, side = '_root';
      while (node[side]) {
         node = node[side];
         if (value === node.value) {
            return;
         };
         side = value < node.value ? 'left' : 'right';
      };
      node[side] = new Node(value);
   };
   contains(value) {
      let current = this._root;
      while (current) {
         if (value === current.value) {
            return true;
         };
         current = value < current.value ? current.left : current.right;
      }
      return false;
   };
}
const tree = new BinarySearchTree();
for (let i = 0; i < 10; i++) {
   tree.insert(Math.floor(Math.random() * 1000));
};
tree.insert(34);
console.log(tree.contains(34));
console.log(tree.contains(334));

출력

콘솔의 출력은 -

true
false