Binary Tree Search
class Node { value: number; left: Node | null; right: Node | null;
constructor(value: number) { this.value = value; this.left = null; this.right = null; }}
class BinarySearchTree { root: Node | null;
constructor() { this.root = null; }
// Insert a value insert(value: number): void { const newNode = new Node(value);
if (this.root === null) { this.root = newNode; return; }
let current = this.root; while (true) { if (value < current.value) { if (current.left === null) { current.left = newNode; break; } current = current.left; } else { if (current.right === null) { current.right = newNode; break; } current = current.right; } } }
// Search for a value search(value: number): boolean { let current = this.root;
while (current !== null) { if (value === current.value) return true; current = value < current.value ? current.left : current.right; } return false; }}
const bst = new BinarySearchTree();bst.insert(10);bst.insert(5);bst.insert(15);console.log(bst.search(5)); // Output: trueconsole.log(bst.search(7)); // Output: false