class TreeNode { constructor(value) { this.value = value; this.left = null; this.right = null; } } class BinarySearchTree { constructor() { this.root = null; } // Insert a value into the tree insert(value) { const newNode = new TreeNode(value); if (!this.root) { this.root = newNode; } else { this._insertNode(this.root, newNode); } } _insertNode(node, newNode) { if (newNode.value < node.value) { if (!node.left) { node.left = newNode; } else { this._insertNode(node.left, newNode); } } else { if (!node.right) { node.right = newNode; } else { this._insertNode(node.right, newNode); } } } // Other tree operations (search, remove, etc.) can be added here } // Example usage: const bst = new BinarySearchTree(); bst.insert(10); bst.insert(5); bst.insert(15); bst.insert(3); bst.insert(7);