Parts 1-4 of Robert Sedgewick's work provide extensive coverage of fundamental data structures and algorithms for sorting, searching, and related applications. They reflect the third edition's greater emphasis on abstract data types (ADTs). Coverage includes more than 100 key algorithms for sorting, selection, priority queue ADT implementations, and symbol table ADT (searching) implementations. Also included are new implementations of binomial queues, multiway radix sorting, Batcher's sorting networks, randomized BSTs, splay trees, skip lists, and multiway tries. Increased quantitative information gives students a more solid basis for comparing algorithms, and hundreds of new exercises reinforce their learning. Algorithms and data structures described in the book are expressed in concise implementations in C, so that students can both appreciate their fundamental properties and test them on real applications.