About the Book
Timothy Budd takes an exciting new
approach to teaching data structures by incorporating the power of the
Standard Template Library (STL). This book represents a reversal of the
traditional presentation. Before concentrating on writing programs, Dr.
Budd emphasizes how to use a standard abstraction. Working with this standard
library, students will master the fundamentals of data structures and learn
the power of C++, allowing them to carry their knowledge to later courses
and into their careers. While the major topics have remained similar to
the author's earlier book, Classic Data Structures in C++, the implementations
have been completely revised. Since data structures are assumed to exist
in the programming environment from the start, the presence of the STL
permits reordering of topics within each chapter.
Features
Related Books
Data Structures - Programming
Courses (Data Structures)
Table of Contents
I. FUNDAMENTAL TOOLS
Fundamentals.
The Study of Data Structures.
Language Fundamentals.
Classes and Object-Oriented Programming.
The Card Game WAR.
The Class Card.
The Class Deck.
The Class Player.
The Game Itself.
Making an Interactive Game.
Accessor and Mutator Functions.
Algorithms — Descriptions of Behavior.
Properties of Algorithms.
Recipes as Algorithms.
Analyzing Computer Algorithms.
Recursive Algorithms.
Analyzing Execution Time.
Algorithmic Analysis and Big-Oh Notation.
Algorithmic Execution Time of Programming
Constructs.
Summing Algorithmic Execution Times.
Benchmarking Actual Execution Times.
Increasing Confidence in Correctness.
Program Proofs.
Program Testing.
II. THE STANDARD CONTAINERS.
The Standard Library Container Classes.
Container Classes.
Selecting a Container.
Iterators.
The String Data Type.
The String Data Abstraction.
Problem Solving with Strings.
String Operations.
The Implementation of Strings.
Vectors — A Random Access Data Structure.
The Vector Data Abstraction.
Templates.
Problem Solving with Vectors.
Summary of Vector Operations.
The Implementation of Vector.
Implementing Generic Algorithms.
Lists — A Dynamic Data Structure.
The List Data Abstraction.
Summary of List Operations.
Example Programs.
An Example Implementation.
Variation Through Inheritance.
Stacks and Queues.
The Stack and Queue Data Abstractions.
Adapters.
Stacks.
Queues.
Deques — Double Ended Data Structures.
The Deque Abstraction.
Application - Depth and Breadth First
Search.
Application - A Framework for Backtracking.
An Implementation.
Set and Multisets.
The Set Data Abstraction.
Set Operations.
Bit Vector Sets.
The Set Data Type.
Summary of Operations for Class Set.
An Implementation of Class Set.
Trees — A Nonlinear Data Structure.
Properties of Trees.
Binary Trees.
Operator Precedence Parsing.
Tree Traversals.
Binary Tree Representation of General
Trees.
Searching.
Divide and Conquer.
Ordered Vectors.
Balanced Binary Search Trees.
Application - Tree Sort.
Finding the Nth Largest.
Priority Queues.
The Priority Queue Data Abstraction.
Heaps.
Skew Heaps.
Application - Discrete Event-Driven
Simulation.
Maps and Multimaps.
The Map Data Abstraction.
Example Programs.
Operations on Maps.
An Example Implementation.
III. OTHER CONTAINERS.
Hash Tables.
The Hash Table Abstraction.
Hash Functions.
Collision Resolution Using Buckets.
Hash Table Sorting Algorithms.
The Hash_Table Data Type.
Hash Functions.
Matrics — Two Dimensional Data Structures.
The Matrix Data Abstraction.
Matrices as Vectors of Vectors.
Sparse Matrices.
Non-Integer Index Values.
Graphs.
The Graph Data Abstraction.
Adjacency Matrix Representation.
Edge List Representation.
Weighted Adjacency Matrix.
Sparse Matrix Representation.
Finite Automata.
Turing Machines.
Files — External Collections.
The File Data Abstraction.
Character Stream Operations.
Application - Lexical Analysis.
Application - File Merge Sort.
Binary Files.
IV. APPENDICES |