This book provides a broad coverage of fundamental and advanced concepts of data structures and algorithms. Its aim is to provide readers with a modern synthesis of concepts with examples of applications that find practical use. Throughout, C++ is used to illustrate the construction and use of abstract data types and to demonstrate object-oriented implementations. As a result, it will make a superb textbook for students taking courses in data structures and software engineering as well as for software professionals. Readers are assumed to have a basic working familiaritiy with C and C++, but is otherwise self-contained.