In a surprisingly lively textbook-style treatment, Data Structures and Program Design in C++ delivers expertise and plenty of sample programs for the working C++ programmer or computer science student.
While some books on data structures stress theory and mathematical concepts over real-world sample code, this guide illustrates its tour of data structures--such as stacks, lists, queues, trees, and graphs--with clear, engaging samples. Throughout, the authors make use of built-in C++ features (such as the Standard Template Library [STL] and templates) where appropriate.
Early chapters use such interesting examples as Conway's Game of Life, chess and game programming, a simple calculator, and an airport simulation. Along the way, the reader will learn about lists, stacks, and queues.
In later chapters, covering thornier topics such as sorting algorithms, trees, and graphs, the authors do not skimp on the mathematical underpinnings for measuring efficiency. Instead, they take extreme care to introduce everything required to understand such conventions as the "Big O" notation and principles of logarithms.
The book closes with a case study that combines several data structures and strategies. (The example, a Polish notation expression parser, is a difficult and common real-world sample.) -- Richard Dragan [via]