ALGORITHMS AND DATA STRUCTURES is primarily designed for use in a first undergraduate course on algorithms, but it can also be used as the basis for an introductory graduate course, for researchers, or computer professionals who want to get and sense for how they might be able to use particular data structure and algorithm design techniques in the context of their own work.The goal of this book is to convey this approach to algorithms, as a design process that begins with problems arising across the full range of computing applications, builds on an understanding of algorithm design techniques, and results in the development of efficient solutions to these problems. It seek to explore the role of algorithmic ideas in computer science generally, and relate these ideas to the range of precisely formulated problems for which we can design and analyze algorithm.