Synopses & Reviews
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. Data Structures in C++ Using the STL. begins each new data structure by describing a typical use of the data structure. Dr. Budd then typically gives an overview of all the operations of the data structure, and only lastly presents an implementation. The implementations are, in most cases, simplified from the standard library versions. Highlights
- Teaches data structures in the context of the C++ Standard Template Library
- Instructs the use of analysis techniques with which to evaluate algorithms
- Provides examples of modern software engineering principles and techniques, including object-oriented programming
- Introduces the proper use of various features of the C++ programming language
The highlights are: teaches data structures in the context of the C++ Standard Template Library; instructs the use of analysis techniques with which to evaluate algorithms; provides examples of modern software engineering principles and techniques, including object-oriented programming; and introduces the proper use of various features of the C++ programming language.
Includes bibliographical references (p. 533-537) and index.
About the Author
Timothy A. Budd
is an Associate Professor of Computer Science at Oregon State University
. Budd received his Bachelor of Arts degree in Mathematics and Computer Science from Western Washington University, and his masters and doctorate degrees in computer science from Yale University. His research interests include multi-paradigm programming languages, programming environments, compiler implementation and optimization techniques.
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.
II. THE STANDARD CONTAINERS. The Standard Library Container Classes.
Selecting a Container.
Iterators. The String Data Type.
The String Data Abstraction.
Problem Solving with Strings.
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.
An Example Implementation.
Variation Through Inheritance. Stacks and Queues.
The Stack and Queue Data Abstractions.
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.
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.
Operator Precedence Parsing.
Binary Tree Representation of General Trees. Searching.
Divide and Conquer.
Balanced Binary Search Trees.
Application - Tree Sort.
Finding the Nth Largest. Priority Queues.
The Priority Queue Data Abstraction.
Application - Discrete Event-Driven Simulation. Maps and Multimaps.
The Map Data Abstraction.
Operations on Maps.
An Example Implementation.
III. OTHER CONTAINERS. Hash Tables.
The Hash Table Abstraction.
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.
Non-Integer Index Values. Graphs.
The Graph Data Abstraction.
Adjacency Matrix Representation.
Edge List Representation.
Weighted Adjacency Matrix.
Sparse Matrix Representation.
Turing Machines. Files — External Collections.
The File Data Abstraction.
Character Stream Operations.
Application - Lexical Analysis.
Application - File Merge Sort.
IV. APPENDICES. 0201308797T04062001