Trees (concept)
A tree is a structure of nodes where each node can have children, starting from one root. The HTML DOM and your file system are both trees. In a binary search tree, smaller values go left and bigger values go right, which makes searching fast.
class TreeNode {
left: TreeNode | null = null
right: TreeNode | null = null
constructor(public value: number) {}
}
// 8
// / \
// 3 10
const root = new TreeNode(8)
root.left = new TreeNode(3)
root.right = new TreeNode(10)
// Visit every node (depth-first)
function printTree(node: TreeNode | null) {
if (!node) return
printTree(node.left)
console.log(node.value) // 3, 8, 10 (sorted!)
printTree(node.right)
}