The binary search tree is quite a versatile structure. The "vanilla" version efficiently supports a variety of search operation. Typical running time for search is proportional to
log n, where
n is the size of the tree. (But watch out for unbalanced trees.) Adding information to tree nodes can speed up some operations even more.
TreeMap class in
java.util is a balanced binary search tree whose elements are pairs. The first of the pair is the key; the second is the value. Access to pairs is done by either key or value. Modification of the table is done by key only.
A good student learns from experience, comparing topics and techniques covered earlier to gain better insight on how they work the way they do. The recent material on binary search trees suggests comparing searching in a binary search tree with using binary search in an array, and with a TreeMap. How do they differ? How are they similar?