Support Asian American, Native Hawaiian, and Pacific Islander-owned small businesses
Buy new:
-51% $119.77
Ships from: Amazon
Sold by: Jwhaddle
$119.77 with 51 percent savings
List Price: $246.65
FREE Returns
Or fastest delivery May 11 - 15
$$119.77 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$119.77
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Ships from
Amazon
Amazon
Ships from
Amazon
Sold by
Returns
30-day refund/replacement
30-day refund/replacement
This item can be returned in its original condition for a full refund or replacement within 30 days of receipt.
Payment
Secure transaction
Your transaction is secure
We work hard to protect your security and privacy. Our payment security system encrypts your information during transmission. We don’t share your credit card details with third-party sellers, and we don’t sell your information to others. Learn more
$24.51
Get Fast, Free Shipping with Amazon Prime FREE Returns
FREE delivery May 15 - 22 to Nashville 37217 on orders shipped by Amazon over $35
Or fastest delivery May 13 - 19
$$119.77 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$119.77
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Access codes and supplements are not guaranteed with used items.
Kindle app logo image

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.

Read instantly on your browser with Kindle for Web.

Using your mobile phone camera - scan the code below and download the Kindle app.

QR code to download the Kindle App

Follow the author

Something went wrong. Please try your request again later.

Data Structures with C++ Using STL 2nd Edition

3.9 out of 5 stars 31 ratings

{"desktop_buybox_group_1":[{"displayPrice":"$119.77","priceAmount":119.77,"currencySymbol":"$","integerValue":"119","decimalSeparator":".","fractionalValue":"77","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"z5cYMPqFJb7tXW4xOTAQFsFygF0f7rA7Q4Lq7aaYvlrDCNdE%2BewQxaH1RWMSWB2%2B%2FdQV%2FS02mvQnn2OtKPVngtkd%2Fy%2FZyAbPs7%2B4F1x7DhE9OwZCQURP24SxDlSOdmAjWVhMErcGFWud9M1cw00bsmh8%2FDro1gUiJ1BymCeyOnAu%2FaxekBLAgErlNNkbei1g","locale":"en-US","buyingOptionType":"NEW","aapiBuyingOptionIndex":0}, {"displayPrice":"$24.51","priceAmount":24.51,"currencySymbol":"$","integerValue":"24","decimalSeparator":".","fractionalValue":"51","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"z5cYMPqFJb7tXW4xOTAQFsFygF0f7rA7Q4Lq7aaYvlrDCNdE%2BewQxaH1RWMSWB2%2B%2FdQV%2FS02mvQnn2OtKPVnghaNZteZo8Px6K%2B46tv5IQeXPvQjQkLrW8UOfVHvMVlW1xdtxkOlCDVdzK8BdnPip6ZZbrngAV8ynZ1wDc5mEGOKYkwVNT2RkNZF6untMU%2FL","locale":"en-US","buyingOptionType":"USED","aapiBuyingOptionIndex":1}]}

Purchase options and add-ons

For CS2/Data Structures courses using C++.

This book uses a modern object-oriented approach to data structures, unified around the notion of the Standard Template Library (STL) container classes. The book presents a systematic development of data structures supported by numerous examples and complete programs. The authors separate the applications of a data structure from its implementation. In the later chapters, the book transitions students into the study of applied algorithms. This creates a bridge to subsequent courses in advanced data structures and algorithms.

Editorial Reviews

From the Back Cover

This long-awaited second edition of Data Structures with C++ Using STL, by Professors Ford and Topp, provides a modern object-oriented approach to data structures using the model of the Standard Template Library (STL). The authors unify the study of data structures around the concepts of containers and iterators. The book skillfully develops algorithms for the data structures and their applications. Readers will find a systematic and detailed implementation for each data structure. These successful authors offer a learning tool that is motivated by a wealth of excellent examples and complete running programs.

KEY FEATURES

  • Uses the early chapters to present object design and programming principles that are at the core of data structures.
  • Develops clear and concise templates, which can support generic programming throughout the book.
  • Uses the STL container classes throughout the book.
  • Presents an Application Programming Interface (API) for each STL container and immediately uses it to solve problems.
  • Demonstrates the implementation of the STL classes by developing mini-container classes that use the corresponding STL interface. The student can understand the overall design of the container and its C++ implementation code.
  • Includes and intuitive and precise introduction to iterators that are at the core of modern data structures.
  • Covers with the same careful style advanced topics such as red-black trees, hash tables, heaps, and graphs.
  • Provides the reader with an extensive development of advanced recursion and inheritance as applied to data structures.
  • Makes available valuable pedagogical features including chapter objectives and summaries; many complete programs with runtime output; case studies; review exercises with solutions for each chapter; extensive written and programming exercises; and a programming project for each chapter.
  • Supplement: Instructor CD with solutions and a test item file; Companion Website containing language tutorials, students assessment materials, and PowerPoint slides.

About the Author

Professor William Ford and Professor William Topp are faculty members with the Computer Science Department, University of the Pacific, Stockton, California. They have also written Introduction to Computing with C++ and Object Technology (Prentice Hall, 1999) and Assembly Language and Systems Programming for the M68000 Family (Jones and Bartlett, 1992).

Product details

  • Publisher ‏ : ‎ Pearson; 2nd edition (July 17, 2001)
  • Language ‏ : ‎ English
  • Hardcover ‏ : ‎ 1072 pages
  • ISBN-10 ‏ : ‎ 0130858501
  • ISBN-13 ‏ : ‎ 978-0130858504
  • Item Weight ‏ : ‎ 3.85 pounds
  • Dimensions ‏ : ‎ 7.4 x 2.2 x 9.1 inches
  • Customer Reviews:
    3.9 out of 5 stars 31 ratings

About the author

Follow authors to get new release updates, plus improved recommendations.
William Ford
Brief content visible, double tap to read full content.
Full content visible, double tap to read brief content.

William Ford was born December 25, 1944 in the then Phelps Dodge copper mining town of Ajo, Arizona. After a time, the family moved to Phoenix, Arizona, where Bill finished grade school and attended Phoenix Central High School, graduating sixth in his class in 1963. He was fortunate to be admitted to MIT where he majored in mathematics and minored in electrical engineering. After graduating with the class of 1967, he became a Ph.D. student in mathematics at the University of Illinois, Urbana-Champaign, receiving the Ph.D. in 1972. His thesis advisor was Dr. Tsuan Wu Ting, and the thesis was entitled "Numerical Solution of Pseudo-parabolic Partial Differential Equations". After spending two years teaching and doing research in the Department of Mathematics at Clemson University, he took a position in the Mathematics Department at the University of the Pacific, Stockton, California. He became a founding member of the Department of the Computer Science Department at Pacific in the mid-eighties. In 1988, William Topp and he published a Motorola 68000 assembly language book with D.C. Heath, with a second edition in 1992. Along with the book, they produced and sold an IDE for the 68000. In 1996, William Topp and he published a data structures book using C++ with Prentice Hall and a second edition in 2001. They also published a C++ CS1 text and a data structures book using Java. Bill developed an IDE named "EZJava" to accompany the latter book. Dr. Ford served as Chair of the Computer Science Department for eleven years and retired May, 2014 after forty years at the University of the Pacific. In September 2014 his book entitled "Numerical Linear Algebra with Applications using MATLAB" was published by Elsevier/Academic Press.

Customer reviews

3.9 out of 5 stars
31 global ratings

Review this product

Share your thoughts with other customers

Top reviews from the United States

  • Reviewed in the United States on February 26, 2013
    Needed a book for my class and this one was it. Gives good explanations and examples that have helped me with the class.
  • Reviewed in the United States on June 8, 2013
    I bought this book as a college course requirement. This book probably deserves five stars, but I'll explain why one star was deducted (too much/not enough).

    1. The publishing is a decade old. That does not mean that the information is outdated, although c++11 has since been released. The book gave too much information. I had already learned much of the information from an introduction to programming class and two semesters of C++ programming classes. The book began by notifying the reader that the information for the book was designed for advanced programmers, but discussed basic knowledge at half-length anyways. This book would be fine as a follow-up for students who struggled through the introduction to programming course if it was taught using C++.

    2. What I was hoping for was a book that provoked creative thinking by presenting a variety of uses for STL data structures, individually, and unique or combined data structures that solve interesting cases, real or imaginary. Still, there was one good chapter for advanced thinking - chapter twelve, Advanced Associative Structures. Another positive was that plenty of data structures information left out of C++ programming books was included.
    One person found this helpful
    Report
  • Reviewed in the United States on February 10, 2014
    This book is a class requirement and has good information and detailed exercises. It gives very good hands on trainings in how to use the Standard Template Libraries. However, the book itself is of poor quality. Two weeks after reading through the book the pages came loose and fell out of the book.
  • Reviewed in the United States on October 17, 2023
    This came in really good condition! Even if it was used, all pages were perfect!
  • Reviewed in the United States on May 20, 2005
    Because of physical problems with this book, the authors' programming style, and lack of a proper audience, I just can't recommend it. There are just too many problems and too few positives for the book to be worthwhile.

    First, the physical problems with the book: in my case, the binding appears to be bad. As I took it out of its plastic wrapping, I noticed a gap between the cover spine and the glued/sewn binding of the actual pages. It looks like the glue that was supposed to hold the two parts of the book together failed. Turning the pages causes a lot of snapping, crackling, and popping and I worry that the binding will break. Second, it seems like the book uses too small a font (these old eyes don't focus like they used to). Oddly, if I compare the font size to that in other textbooks, it looks comparable. I'm not sure, but I think the publisher used a slightly smaller line spacing and either a lighter ink or darker paper. Whatever it is, it makes reading the book a bit hard. That's pretty subjective and minor, but more aggravating is that the publisher used an even lighter (gray) font for the code segments. This makes the code even harder to read than the text. Again, I'm not certain, but it also looks like the font in the code sections is even smaller than the font in the text. And finally, the authors don't use any color in their code. It's hard to distinguish the actual code from the comments. This makes reading the code difficult.

    Next, I highly disagree with the authors' coding style. Essentially, I consider it sloppy. In general, they don't write their class methods to ensure data integrity (and that's one of the big advantages of classes (which are at the core of this book)). Also, the authors tend to directly access private class members within the class methods instead of using the class' already defined public methods that do the same thing (get/set). I know this is allowed, but it's still bad software engineering: you should re-use code wherever possible. Similarly, and worse, the authors violate the principles of data hiding by writing classes with public data members instead of with private data members and public get/set methods. I also have a problem with the authors using "using namespace std;" in their code. Since this exposes all of the C++ standard library methods to the program, it can lead to conflicts. I understand that in a teaching environment this might be good for keeping the focus on the topic at hand instead of "cluttering up the code" with nuances, but the authors make no reference to this rationale. They just blindly use that line in all their code. I'd much prefer they explicitly did a "using std::whatever;" when they needed it. What's especially bad is that they do this in all the HEADERS they provide for their examples (not just in the "main" programs). Anyone who uses any of those headers automatically ends up with all the namespace names included in their code. And, finally, not only are the authors lax in their object oriented programming, they're also lax in their structured programming: they routinely, and without comment, use break statements to jump out of the infinite for-loops (which are feats in themselves) they set up to handle their file input.

    Finally, and most importantly, the authors don't seem to have a grasp on who their audience is. In the Preface and the start of the first chapter, they specifically state that the readers should already be familiar with objects and classes from a first course in C++. They note that they aren't about to review old topics, but, instead, will pick up where that left off. However, most of the book is a re-hashing of basic C++ programming. For instance:

    - Chapter 1 is a review of programming classes (and, thus, objects) in C++.

    - Chapter 2 discusses 1) software design, 2) handling runtime errors, 3) object composition, and 4) operator overloading.

    - Chapter 3 covers templates and recursion. The algorithms discussed are those usually presented in C++ programming courses: selection sort, sequential search, binary search, tower of hanoi, and greatest common divisor.

    - Chapter 5 goes over pointers, pointer arithmetic, dynamic memory allocation, constructors and destructors.

    - Chapter 7, stacks. Chapter 8, queues. Chapter 9, linked lists. Chapter 10, binary trees. Chapter 13, inheritance and abstract classes.

    All of this is what I consider to be basic C++ (see Deitel's "C++ How to Program" book to find references to all those things). I just can't see how anyone could learn even the rudiments of C++ without having covered those topics. I could be wrong (in which case, since I've provided my rationale for my rating, you'll at least know what to ignore in this review). But, for all intents and purposes, the authors don't really start teaching anything new until after page 500 (Chapter 10) in a 1000 page (16 chapter) book. And even there, I was so irritated with the various problems I noted above, that I kept wondering how much credence to put in the authors' presentation.

    So, in a nutshell, because of the physical problems with the book itself, the sloppiness of the authors' programming style, and their mis-identification of the audience, I can't recommend this book. I rate it at only 2 stars out of 5.

    As a side note, at the time I bought this book, Florida State University (FSU) used it in their COP 4530: "Data Structures, Algorithms & Generic Programming" course. They've now switched to a book called "Data Structures & Algorithms in C++," 3e, by Drozdek. I don't know anything about that book, but based solely on this book, FSU did the right thing.
    13 people found this helpful
    Report
  • Reviewed in the United States on April 4, 2021
    The book is good for someone not familiar to all STL with C++ data structure yet. However, source code examples mentioned in the book is no longer available anymore from author's website. If you go to Prentice Hall website, you are required to be a instructor to get access them, that's why 4 STARs. Other than that, I do enjoy this book.
  • Reviewed in the United States on June 17, 2008
    The book itself is great and illustrates the core concepts well.
    The code examples are grossly out of date (were talking 1990's) and completely ruins the beautiful text by adding confusing, poorly written code examples to reinforce good literature.

    If you are buying this to learn data structures as a reference, great.
    If you expect usable code examples this is not the book for you.
    Highly Microsoft Visual Studio Centric. Not ANSI C++.

    My note to the author's / publisher: You need to keep up with the times. This is technology and it moves quickly. Otherwise future-proof your code as much as possible.
    12 people found this helpful
    Report
  • Reviewed in the United States on January 24, 2008
    having read 1st four chapters, i find Ford and Topp are stingy in examples and theory.
    You'd better do all the programming exercises at the end of chapter since that's where the value of this book lies.
    Thinking in C++ Vol.1 and 2 have better reference material. Please buy Bruce Eckels' "Thinking in C++"!
    One person found this helpful
    Report