Balancing Tree Algorithms
The goal of this section is not to actually study tree-balancing algorithms (that's an Algorithms topic) but to give a more concrete sense of how those algorithms work.
Opinion: If you find yourself heading off to implement a self-balancing binary search tree; do yourself a favor and don't do it. If you just need association, use a hashmap instead. If you do need the ordered-nature, implement a SkipList instead -- for basically the same performance, the code/algorithms are much simpler! (Pugh, 1990)