Book description
An updated, innovative approach to data structures and algorithms
Written by an author team of experts in their fields, this authoritative guide demystifies even the most difficult mathematical concepts so that you can gain a clear understanding of data structures and algorithms in C++.
The unparalleled author team incorporates the object-oriented design paradigm using C++ as the implementation language, while also providing intuition and analysis of fundamental algorithms.
Offers a unique multimedia format for learning the fundamentals of data structures and algorithms
Allows you to visualize key analytic concepts, learn about the most recent insights in the field, and do data structure design
Provides clear approaches for developing programs
Features a clear, easy-to-understand writing style that breaks down even the most difficult mathematical concepts
Building on the success of the first edition, this new version offers you an innovative approach to fundamental data structures and algorithms.
Table of contents
- Copyright
- Preface
- Contents and Organization
-
1. A C++ Primer
- 1.1. Basic C++ Programming Elements
- 1.2. Expressions
- 1.3. Control Flow
- 1.4. Functions
- 1.5. Classes
- 1.6. C++ Program and File Organization
- 1.7. Writing a C++ Program
- 1.8. Exercises
- 1.9. Chapter Notes
-
2. Object-Oriented Design
- 2.1. Goals, Principles, and Patterns
- 2.2. Inheritance and Polymorphism
- 2.3. Templates
- 2.4. Exceptions
- 2.5. Exercises
- 2.6. Chapter Notes
-
3. Arrays, Linked Lists, and Recursion
- 3.1. Using Arrays
- 3.2. Singly Linked Lists
- 3.3. Doubly Linked Lists
- 3.4. Circularly Linked Lists and List Reversal
-
3.5. Recursion
- 3.5.1.
- 3.5.2. Linear Recursion
- 3.5.3. Binary Recursion
- 3.5.4. Multiple Recursion
- 3.6. Exercises
- 3.7. Chapter Notes
-
4. Analysis Tools
- 4.1. The Seven Functions Used in This Book
-
4.2. Analysis of Algorithms
- 4.2.1. Experimental Studies
- 4.2.2. Primitive Operations
- 4.2.3. Asymptotic Notation
- 4.2.4. Asymptotic Analysis
- 4.2.5. Using the Big-Oh Notation
- 4.2.6. A Recursive Algorithm for Computing Powers
-
4.2.7. Some More Examples of Algorithm Analysis
- 4.2.7.1. A Constant-Time Method
- 4.2.7.2. Revisiting the Method for Finding the Maximum in an Array
- 4.2.7.3. Further Analysis of the Maximum-Finding Algorithm
- 4.2.7.4. Three-Way Set Disjointness
- 4.2.7.5. Recursion Run Amok
- 4.2.7.6. An Iterative Method for Solving the Element Uniqueness Problem
- 4.2.7.7. Using Sorting as a Problem-Solving Tool
- 4.3. Simple Justification Techniques
- 4.4. Exercises
- 4.5. Chapter Notes
-
5. Stacks, Queues, and Deques
- 5.1. Stacks
- 5.2. Queues
- 5.3. Double-Ended Queues
- 5.4. Exercises
- 5.5. Chapter Notes
- 6. List and Iterator ADTs
-
7. Trees
- 7.1. General Trees
- 7.2. Tree Traversal Algorithms
-
7.3. Binary Trees
- 7.3.1.
- 7.3.2.
- 7.3.3. The Binary Tree ADT
- 7.3.4. A C++ Binary Tree Interface
- 7.3.5. Properties of Binary Trees
- 7.3.6. A Linked Structure for Binary Trees
- 7.3.7. A Vector-Based Structure for Binary Trees
-
7.3.8. Traversals of a Binary Tree
- 7.3.8.1. Preorder Traversal of a Binary Tree
- 7.3.8.2. Postorder Traversal of a Binary Tree
- 7.3.8.3. Evaluating an Arithmetic Expression
- 7.3.8.4. Inorder Traversal of a Binary Tree
- 7.3.8.5. Binary Search Trees
- 7.3.8.6. Using Inorder Traversal for Tree Drawing
- 7.3.8.7. The Euler Tour Traversal of a Binary Tree
- 7.3.9. The Template Function Pattern
- 7.3.10. Representing General Trees with Binary Trees
- 7.4. Exercises
- 7.5. Chapter Notes
-
8. Heaps and Priority Queues
- 8.1. The Priority Queue Abstract Data Type
- 8.2. Implementing a Priority Queue with a List
- 8.3. Heaps
- 8.4. Adaptable Priority Queues
- 8.5. Exercises
- 8.6. Chapter Notes
-
9. Hash Tables, Maps, and Skip Lists
- 9.1. Maps
- 9.2. Hash Tables
- 9.3. Ordered Maps
- 9.4. Skip Lists
- 9.5. Dictionaries
- 9.6. Exercises
- 9.7. Chapter Notes
- 10. Search Trees
-
11. Sorting, Sets, and Selection
- 11.1. Merge-Sort
- 11.2. Quick-Sort
- 11.3. Studying Sorting through an Algorithmic Lens
- 11.4. Sets and Union/Find Structures
- 11.5. Selection
- 11.6. Exercises
- 11.7. Chapter Notes
- 12. Strings and Dynamic Programming
-
13. Graph Algorithms
- 13.1. Graphs
- 13.2. Data Structures for Graphs
- 13.3. Graph Traversals
- 13.4. Directed Graphs
- 13.5. Shortest Paths
- 13.6. Minimum Spanning Trees
- 13.7. Exercises
- 13.8. Chapter Notes
- 14. Memory Management and B-Trees
- A. Useful Mathematical Facts
-
Bibliography
Product information
- Title: Data Structures and Algorithms in C++, Second Edition
- Author(s):
- Release date: February 2011
- Publisher(s): Wiley
- ISBN: 9780470383278
You might also like
book
Data Structures and Algorithms in Java, 2nd Edition
Data Structures and Algorithms in Java, Second Edition is designed to be easy to read and …
book
Modern C++ for Absolute Beginners: A Friendly Introduction to C++ Programming Language and C++11 to C++20 Standards
Learn the C++ programming language in a structured, straightforward, and friendly manner. This book teaches the …
book
The C++ Programming Language, 4th Edition
The new C++11 standard allows programmers to express ideas more clearly, simply, and directly, and to …
book
A Tour of C++, 2nd Edition
In Bjarne Stroustrup, the creator of C++, describes what constitutes modern C++. This concise, self-contained guide …