Home > Store > Programming > C/C++

larger cover

Add To My Wish List

Data Abstraction & Problem Solving with C++, 5th Edition

  • By Frank M. Carrano
  • Published Jul 14, 2006 by Prentice Hall.
    • Copyright 2007
    • Dimensions: 7-3/8" x 9-1/8"
    • Pages: 992
    • Edition: 5th
    • Book
    • ISBN-10: 0-321-43332-7
    • ISBN-13: 978-0-321-43332-9

Register your product to gain access to bonus material or receive a coupon.

  • Description
  • Reviews
  • Sample Content

Product Author Bios

Frank M. Carrano is a professor emeritus of computer science at the University of Rhode Island. He received the Ph.D. degree in computer science from Syracuse University in 1969. His interests include data structures, computer science education, social issues in computing, and numerical computation. Professor Carrano is particularly interested in the design and delivery of undergraduate courses in computer science. He has authored several well-known computer science textbooks for undergraduates.


Frank’s Making it Real blog http://frank-m-carrano.com/blog/ extends his textbooks and lectures to a lively discussion with instructors and students about teaching and learning computer science.


Follow Frank on Twitter: http://twitter.com/Frank_M_Carrano

Find him on Facebook: https://www.facebook.com/makingitreal


The classic, best-selling Data Abstraction and Problem Solving with C++: Walls and Mirrors book provides a firm foundation in data abstraction that emphasizes the distinction between specifications and implementation as the basis for an object-oriented approach. This new edition offers the latest C++ features and an introduction to using Doxygen——a documentation generator for C++, enhanced coverage of Software Engineering concepts and additional UML diagrams. 


Frank’s Making it Real blog http://frank-m-carrano.com/blog/ extends his textbooks and lectures to a lively discussion with instructors and students about teaching and learning computer science.


Follow Frank on Twitter: http://twitter.com/Frank_M_Carrano

Find him on Facebook: https://www.facebook.com/makingitreal


Customer Reviews

1 of 1 people found the following review helpful
3.0 out of 5 stars Fair book, why a fifth edition?, November 20, 2011
By 
WAYNE MCGEE (Texas, USA) - See all my reviews
(REAL NAME)   
Amazon Verified Purchase(What's this?)
This review is from: Data Abstraction & Problem Solving with C++ (5th Edition) (Paperback)
I am a mathematician who is picking up some computer science coursework. I have been programming in C++ for approximately seven years.

Although some of the data structures and algorithms are new to me, I cannot take the viewpoint of a student seeing all of this material for the first time. I will nitpick at some of the author's choices.

The issue that bothered me the most was the author's choice to include exception specifications with function declarations. Many professional programmers, including Herb Sutter, have made excellent cases for the complete avoidance of exception specifications. It's perfectly fine and even useful to put them within a /*comment*/ for documentation purposes, but no one should EVER use them in actual code.

I also found it interesting that Carrano went to great lengths in the chapter on Stacks to talk about the implementation of recursive function calls using stacks. He is very specific in talking about RECURSIVE... Read more
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


5 of 7 people found the following review helpful
4.0 out of 5 stars Beginners take note..., November 17, 2007
By 
This review is from: Data Abstraction & Problem Solving with C++ (5th Edition) (Paperback)
This book is not for beginners, and I'm a beginner. Sigh...
This book was chosen by my instructor for our required c++ course. Needless to say, everybody in my class without c++ experience is severely struggling in this class. Those that have had a real Intro to c++ are doing ok.
I don't think it's fair for me to pan a book because I don't have the capacity(yet) to comprehend it's finer points. My frustration level would give this a 1 star rating. Instead, I gave this book 4 stars because:
1) The writer (maddeningly) leaves the best code, the stuff I REALLY want to see, as, (I quote)"The resolution of this particular difficulty is left to you as an exercise." ARGH! Not once, but over and over again, you will read statements like this.
2) There are no answers for any of the coding exercises. None.
How much educating does this do?
If you (like me) had to get this book because your professor decided on this as a good "Intro to c++" book. Help... Read more
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


13 of 19 people found the following review helpful
1.0 out of 5 stars Horrible., October 23, 2008
By 
Jeff Haskell (Long Beach, CA United States) - See all my reviews
(REAL NAME)   
Amazon Verified Purchase(What's this?)
This review is from: Data Abstraction & Problem Solving with C++ (5th Edition) (Paperback)
\\start sarcasm
I have an idea! Lets write a book about C++ data concepts but completely forgo using examples in C++. Learning the language isn't challenging enough and putting source code in a book like this is so yesterday!

Oh wait! Even better! Lets write all the concepts in UML instead of source code. It'll be like teaching students 2 courses at the same time! Ha ha! Brilliant.
\\end sarcasm

I am completely dumb-founded as to why the author would explain abstract data types, as if the reader was learning it for the first time, but then not show simple working code examples. All you get is pseudo-code and UML.

The concepts explained in this book are not hard to understand once you get past the UML. It is when you try to do exercises and assignments to ACTUALLY LEARN the implementation (and pass the course) that you find the book has abandoned you.

Oh and there is in fact source code. If you are a registered instructor you get... Read more
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


Share your thoughts with other customers:
 See all 16 customer reviews...

Table of Contents

Preface

Chapter Dependency Chart

 

PART ONE - Problem-Solving Techniques

1 Principles of Programmingand Software Engineering

1.1Software Engineering and Object-Oriented Design

1.2 Achieving a Better Solution

1.3 Key Issues in Programming

 

2 Recursion: The Mirrors

2.1 Recursive Solutions

2.2 Counting Things

2.3 Searching an Array

2.4 Organizing Data

2.5 Recursion and Efficiency

 

3 Data Abstraction: The Walls

3.1 Abstract Data Types

3.2 Specifying ADTs

3.3 Implementing ADTs

 

4 Linked Lists

4.1 Preliminaries

4.2 Programming with Linked Lists

4.3 Variations of the Linked List

4.4 Application: Maintaining an Inventory

4.5 The C++ Standard Template Library

 

5 Recursion as a Problem-Solving Technique

5.1 Backtracking

5.2 Defining Languages

5.3 The Relationship Between Recursionand Mathematical Induction

 

PART TWO Problem Solving with Abstract Data Types

6 Stacks

6.1 The Abstract Data Type Stack

6.2 Simple Applications of the ADT Stack

6.3 Implementations of the ADT Stack

6.4 Application: Algebraic Expressions

6.5 Application: A Search Problem

6.6 The Relationship Between Stacks and Recursion

 

7 Queues

7.1 The Abstract Data Type Queue

7.2 Simple Applications of the ADT Queue

7.3 Implementations of the ADT Queue

7.4 A Summary of Position-Oriented ADTs

7.5 Application: Simulation

 

8 Advanced C++ Topics

8.1 Inheritance Revisited

8.2 Virtual Methods and Late Binding

8.3 Friends

8.4 The ADTs List and Sorted List Revisited

8.5 Class Templates

8.6 Overloaded Operators

8.7 Iterators

 

9 Algorithm Efficiency and Sorting

9.1 Measuring the Efficiency of Algorithms

9.2 Sorting Algorithms and Their Efficiency

 

10 Trees

10.1 Terminology

10.2 The ADT Binary Tree

10.3 The ADT Binary Search Tree

10.4 General Trees

 

11 Tables and Priority Queues

11.1 The ADT Table

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

11.3 Tables and Priority Queues in the STL

 

12 Advanced Implementations of Tables

12.1 Balanced Search Trees

12.2 Hashing

12.3 Data with Multiple Organizations

 

13 Graphs

13.1 Terminology

13.2 Graphs as ADTs

13.3 Graph Traversals

13.4 Applications of Graphs

 

14 Processing Data in External Storage

14.1 A Look at External Storage

14.2 Sorting Data in an External File

14.3 External Tables

 

A  Review of C++ Fundamentals

B  ASCII Character Codes

C  C++ Header Files and Standard Functions

D  Mathematical Induction

E  Standard Template Library

F  C++ Documentation Systems

 

 

 
Purchase Reward: One Month Free Subscription
By completing any purchase on InformIT, you become eligible for an unlimited access one-month subscription to Safari Books Online.

Get access to thousands of books and training videos about technology, professional development and digital media from more than 40 leading publishers, including Addison-Wesley, Prentice Hall, Cisco Press, IBM Press, O'Reilly Media, Wrox, Apress, and many more. If you continue your subscription after your 30-day trial, you can receive 30% off a monthly subscription to the Safari Library for up to 12 months. That's a total savings of $199.