|

Addison-Wesley / Prentice Hall

Computer Science

My Instructor Resource Center :  Log in or request access

Data Abstraction and Problem Solving with C++: Walls and Mirrors, 3/E
Frank CarranoUniversity of Rhode Island
Janet PrichardBryant College

ISBN-10: 0201741199
ISBN-13:  9780201741193

Publisher:  Addison-Wesley
Copyright:  2002
Format:  Cloth; 944 pp
Published:  08/09/2001

This classic book has been revised to further enhance its focus on data abstraction and data structures using C++. The book continues to provide a firm foundation in data abstraction, emphasizing the distinction between specification and implementation as the foundation for an object-oriented approach. The authors cover key object-oriented concepts, including encapsulation, inheritance and polymorphism. However, the focus remains on data abstraction instead of simply C++ syntax. The authors also illustrate the role of classes and ADTs in the problem-solving process, and includes major applications of ADTs, such as searching a flight map and event-driven simulation. The book offers early, extensive coverage of recursion and uses this technique in many examples and exercises. It also introduces analysis of algorithms and the Big "O" notation. In addition, this text reviews, in an appendix, basic C++ syntax for those who either have studied the language previously or are making the transition from another language to C++.

  • NEW! Introduces the Unified Modeling Language (UML) as a tool for designing classes.
  • NEW! Provides coverage of the Standard Template Library (STL).
  • NEW! Updated coverage of C++, including an introduction to C++ exceptions, and discussion of C++ namespaces.
  • NEW! Includes many new and revised exercises and programming projects.
  • The challenging topic of Recursion (mirrors) is taught in Chapter 2 and used throughout so students master this important concept.
  • Data abstraction (walls) is taught in Chapter 3 and also carried throughout.
  • Focuses on coverage of data structures instead of language syntax. However, all C++ code has been updated.



Preface.


Chapter Dependency Chart.

I. PROBLEM-SOLVING TECHNIQUES.

1. Principles of Programming and Software Engineering.

Problem Solving and Software Engineering.

Achieving A Modular Design.

A Summary of Key Issues in Programming.

2. Recursion: The Mirrors.

Recursive Solutions.

Counting Things.

Searching An Array.

Organizing Data.

Recursion And Efficiency.

3. Data Abstraction: The Walls.

Abstract Data Types.

Specifying ADTs.

Implementing ADTs.

4. Linked Lists.

Preliminaries.

Programming with Linked Lists.

Variations of the Linked List 206.

Application: Maintaining an Inventory.

The C++ Standard Template Library.

5. Recursion as a Problem-Solving Technique.

Backtracking.

Defining Languages.

The Relationship between Recursion and Mathematical Induction.

II. PROBLEM SOLVING WITH ABSTRACT DATA TYPES.

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

7. Queues.

The Abstract Data Type Queue.

Simple Applications of the ADT Queue.

Implementations of the ADT Queue.

A Summary Of Position-Oriented ADTs.

Application: Simulation.

8. Advanced C++ Topics.

Inheritance Revisited.

Virtual Functions and Late Binding.

Friends.

The ADTs List and Sorted List Revisited.

Class Templates.

Overloaded Operators.

Iterators.

9. Algorithm Efficiency and Sorting.

Measuring the Efficiency of Algorithms.

Sorting Algorithms and Their Efficiency.

10. Trees.

Terminology.

The ADT Binary Tree.

The ADT Binary Search Tree.

General Trees.

11. Tables and Priority Queues.

The ADT Table.

The ADT Priority Queue: A Variation of the ADT Table.

12. Advanced Implementations of Tables.

Balanced Search Trees.

Hashing.

Data with Multiple Organizations.

13. Graphs.

Terminology.

Graphs as ADTs.

Graph Traversals.

Applications of Graphs.

14. External Methods.

A Look at External Storage.

Sorting Data in an External File.

External Tables.

Appendices.

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.

B. Ascii Character.

C. Codes (Ascii Subset).

D. C++ Header Files And Standard Functions.

E. Mathematical Induction.

Glossary.

Answers to Self-Test Exercises.

Index.

  • 9780321433329
    Data Abstraction & Problem Solving with C++, 5/E
    Carrano
    ©2007 | Addison-Wesley | Paper; 992 pp | Instock
    ISBN-10: 0321433327 | ISBN-13: 9780321433329
    Brief Description

The classic Data Abstraction and Problem Solving with C++: Walls and Mirrors been revised to further enhance its focus on data abstraction and data structures using C++. It provides a firm foundation in data abstraction, emphasizing the distinction between specification and implementation as the foundation for an object-oriented approach. Professors Frank Carrano and Janet Prichard cover key object-oriented concepts, including encapsulation, inheritance and polymorphism. However, the focus remains on data abstraction instead of simply C++ syntax.

The authors also illustrate the role of classes and ADTs in the problem-solving process and include major applications of ADTs, such as searching a flight map and event-driven simulation. The book offers early, extensive coverage of recursion and uses this technique in many examples and exercises. It also introduces analysis of algorithms and the Big "0" notation. New to this edition is an introduction to the Standard Template Library and the Unified Modeling Language. Features

  • Includes a lucid writing style, wide-spread use of examples, and flexible coverage of topics
  • Provides a strong introduction to, and a continuous use of, data abstraction
  • Presents the best coverage of recursion available in any textbook, starting in Chapter 2
  • Focuses on coverage of data structures instead of language syntax-still, all C++ code has been updated to conform with ANSI Standard C++
  • Contains coverage of the Standard Template Library (STL)
  • Introduces the Unified Modeling Language (UML) as a tool for designing classes
  • Provides an appendix on basic C++ syntax for those who are making the transition to C++ from another language

Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students contact your Pearson Higher Education representative.