Synopses & Reviews
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. 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
0201308797B04062001
Synopsis
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.
Description
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.
0201308797AB04062001
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. 0201308797T04062001