For this version of Robert Sedgewick's popular textbook on algorithms and data structures, Christopher Van Wyk and Sedgewick have developed new C++ implementations that both express the presented methods in a concise and direct manner, and also provide students with the practical means to test them on real applications. This particular book, Parts 1-4, represents a substantial update of the first half of Sedgewick's complete work. It provides extensive coverage of fundamental data structures and algorithms for sorting, searching, and related applications. The update features expanded coverage of arrays, linked lists, strings, trees, and other basic data structures, and greater emphasis on abstract data types (ADTs), modular programming, object-oriented programming, and C++ classes than in previous editions. It includes over 100 algorithms for sorting, selection, priority queue ADT implementations, and symbol table ADT (searching) implementations, and over 1,000 new exercises to help students learn the properties of algorithms.