Contents and Organization
The chapters for this course are organized to provide a pedagogical path that starts with the basics of C++ programming and object-oriented design. We provide an early discussion of concrete structures, like arrays and linked lists, in order to provide a concrete footing to build upon when constructing other data structures. We then add foundational techniques like recursion and algorithm analysis, and, in the main portion of the book, we present fundamental data structures and algorithms, concluding with a discussion of memory management (that is, the architectural underpinnings of data structures). Specifically, the chapters for this book are organized as follows:
A C++ Primer
Object-Oriented Design
Arrays, Linked Lists, and Recursion
Analysis Tools
Stacks, Queues, and Deques
List and Iterator ADTs
Trees
Heaps and Priority Queues
Hash Tables, Maps, and Skip Lists
Search Trees
Sorting, Sets, and Selection
Strings and Dynamic Programming
Graph Algorithms
Memory Management and B-Trees
A. Useful Mathematical Facts
A more detailed listing of the contents of this book can be found in the table of contents.
Prerequisites
We have written this book assuming that the reader comes to it with certain knowledge. We assume that the reader is at least vaguely familiar with a high-level programming language, such as C, C++, Python, or Java, and that he or she understands the main constructs from such a high-level language, including:
Variables and expressions.
Functions (also known as methods ...
Get Data Structures and Algorithms in C++, Second Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.