In classes 15 and 16 we examined Binary Search Trees. We saw that the running time of such common operations as Find and Insert was O(n) in the worst case, and O(lg n) in the best case. We also examined the "average" case across all BSTs with n nodes and found the "average" time to be O(lg n), but this is not the same as saying the running time is O(lg n) for all BSTs.

In class 17, we looked at SPLAY trees which strive to give us amoritized O(lgn) running time. In the next two classes we look at AVL trees, which provide O(lg n) running time for each common operation.

Notes for classes 18 & 19 are available in both HTML and postscript formats.