Chúng tôi được yêu cầu viết một hàm JavaScript trên đối tượng nguyên mẫu của kiểu dữ liệu BinarySearchTree nhận một giá trị và tìm xem giá trị đó có trong BST hay không.
Ví dụ
Mã cho điều này sẽ là -
// 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));
Đầu ra
Và đầu ra trong bảng điều khiển sẽ là -
true false