Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Kiểm tra giá trị có tồn tại trong cây nhị phân tìm kiếm (BST) trong JavaScript

Viết phương thức contains trên prototype BinarySearchTree, nhận giá trị và kiểm tra xem giá trị đó có trong BST hay không.

Ví dụ

class Node { 
  constructor(value) { 
    this.value = value; 
  } 
} 
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));

Kết quả

Kết quả in ra console:

true false