Data Structures in C++ : Using the Standard Template Library (STL) (Hardcover)

Timothy Budd




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.

Back to Top

Table Of Contents


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.


The Standard Library Container Classes.
Container Classes.
Selecting a Container.

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.
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.

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.

Divide and Conquer.
Ordered Vectors.
Balanced Binary Search Trees.
Application - Tree Sort.

Finding the Nth Largest.

Priority Queues.
The Priority Queue Data Abstraction.
Skew Heaps.
Application - Discrete Event-Driven Simulation.

Maps and Multimaps.
The Map Data Abstraction.
Example Programs.
Operations on Maps.
An Example Implementation.


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.

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. 0201308797T04062001

Back to Top


Instructor Supplements

For more information about any of the supplements listed below, use our Rep. Locator to contact your Addison Wesley representative.

Back to Top