This document discusses binary search trees (BSTs). It defines BSTs as binary trees where the value in each node is greater than all values in its left subtree and less than all values in its right subtree. It explains that searches, insertions and deletions in balanced BSTs have O(log n) complexity on average. The document provides pseudocode and examples for searching, inserting, and removing nodes from a BST. It also discusses how the shape and balance of a BST can impact performance of the operations.