This document discusses binary search trees. It begins by defining what a binary tree is, noting that each node can have up to two children and there is a unique path from the root to every other node. Some key terminology introduced includes leaves, levels, height, and full trees. The document then explains that binary search trees have the property that for each node, all left descendants are less than the node's value and all right descendants are greater. This property enables efficient search, insertion and deletion operations that take O(h) time where h is the height of the tree. The document provides pseudocode for common binary search tree functions like search, insert, delete and various tree traversal orders.