Data Abstraction and Problem Solving with C++

Table of Contents
PART I. PROBLEM-SOLVING TECHNIQUES.

Principles of Programming and Software Engineering
  • Problem Solving and Software Engineering
  • Achieving a Modular Design
  • A Summary of Key Issues in Programming
Recursion: The Mirrors
  • Recursive Solutions
  • Counting Things
  • Searching an Array
  • Organizing Data
  • Recursion and Efficiency
Data Abstraction: The Walls
  • Abstract Data Types
  • Specifying ADTs
  • Implementing ADTs
Linked Lists
  • Preliminaries
  • Programming with Linked Lists
  • Variations of the Linked List
  • Application: Maintaining an Inventory
  • The C++Standard Template Library
Recursion as a Problem-Solving Technique
  • Backtracking
  • Defining Languages
  • The Relationship Between Recursion and Mathematical Induction

PART II. PROBLEM SOLVING WITH ABSTRACT DATA TYPES

Stacks
  • The Abstract Data Type Stack
  • Simple Applications of the ADT Stack
  • Implementations of the ADT Stack
  • Application: Algebraic Expressions
  • Application: A Search Problem
  • The Relationship Between Stacks and Recursion
Queues
  • The Abstract Data Type Queue
  • Simple Applications of the ADT Queue
  • Implementations of the ADT Queue
  • Application: Simulation
  • A Summary of Position-Oriented ADTs
  • Class Relationships
Advanced C++Topics
  • Inheritance Revisited
  • Virtual Functions and Late Binding
  • Friends
  • The ADTs List and Sorted List Revisited
  • Class Templates
  • Overloaded Operators
  • Iterators
Trees
  • Terminology
  • The ADT Binary Tree
  • The ADT Binary Search Tree
  • General Trees
Tables and Priority Queues
  • The ADT Table
  • The ADT Priority Queue: A Variation of the ADT Table
Advanced Implementations of Tables
  • Balanced Search Trees
  • Hashing
  • Data with Multiple Organizations
Graphs
  • Terminology
  • Graphs as ADTs
  • Graph Traversals
  • Applications of Graphs
External Methods
  • A Look at External Storage
  • Sorting Data in an External File
  • External Tables
Appendix A. Review of C++ Fundamentals
  • Language Basics
  • Input and Output Using iostream
  • Functions
  • Selection Statements
  • Iteration Statements
  • Arrays
  • Strings
  • Structures
  • C++Exceptions
  • File Input and Output
  • Libraries
  • A Comparison to Java

Appendix B. Ascii Character Codes

Appendix C. C++ Header Files And Standard Functions

Appendix D. Mathematical Induction

Appendix E. Standard Template Library Classes



© Copyright 2002 AW Higher Education, a division of Pearson Education, a Pearson plc company. All rights reserved. Legal disclaimer. E-mail webmaster@awl.com
About the Book
New to this Edition
Table of Contents
Preface
Ordering Info
Sample Chapter
Exam Copy
About the Authors
Teaching Resources