Object-oriented programming and powerful features of C++ enable this carefully crafted text to build data structures from basic ideas into complete, fully developed programs and interesting applications. In the process, the text explores problem solving and programming principles, data abstraction, recursion, and the comparative analysis of algorithms as fundamentals tools of software design.