Copyright 2001 by Robert Sedgewick. Permission is granted for duplication and distribution of this material in a Spring 2001 course given by the author at Princeton University. Written permission is required for additional duplication and distribution of this material.