This document discusses binary search trees. It begins by defining what a binary tree is, noting that each node can have up to two child nodes and there is a unique path from the root node to every other node. Some key terminology introduced includes leaf nodes, parent and child nodes, levels, height, and full trees.
It then explains what a binary search tree is, noting that for each node, all values in its left subtree are less than the node's value and all values in its right subtree are greater. This property allows searching a binary search tree to have an average-case running time of O(logN).
Finally, it discusses various binary tree operations like searching, inserting, and deleting nodes while