This book is based on the classic "Walls and Mirrors" approach used in the best-selling Data Abstraction and Problem Solving with C++, and is now updated to the Java programming language. It uses the running theme of "Walls and Mirrors" to help make clear the challenging concepts of recursion (the mirrors) and data abstraction (the walls). The authors cover key object-oriented concepts, including encapsulation, inheritance, and polymorphism; the focus of the book, however, remains on data abstraction. They also introduce the analysis of algorithms and Big "O" notation. For those who know a different language or who need a refresher, an appendix covering basic Java syntax is also provided. This book is appropriate for readers who are familiar with basic Java programming concepts or are new to the language and want to learn how it treats the concepts of recursion and data abstraction.
This book has amazing, helpful material on understanding how to use ADT (abstract data types), generics, and comparables to make modules more portable and reusable. The only reason I didn't give it five stars is that each chapter follows the same pattern such that the redundancy is a but painful a few chapters in. The first time, it helped me to think differently. After that, it made more sense to skim for new information; I feel strongly if you have become that boring in your writing that you are failing students. Examples should have been presented in different perspectives so that students who think differently could each have their aha moment, ideally. Otherwise, the instructions for comments syntax and portability in this book are WELL worth it because they are entirely absent from other texts and are absolutely crucial for good programming documentation and being able to reuse your work.
This book was pretty decent. It is more digestible than earlier editions and provides wonderful implementation pseudocode. I used a previous edition from the 2000's (Timothy Henry was not involved), an edition not advised to be used by the co-author of the old edition (one of our professors berated the old book as well). The topic is quite difficult, so I don't know if it could have been articulated any easier. Maybe I'll read Dr. Sedgewick from Princeton and compare to this one. The good thing about Sedgewick is that he runs an online MOOC on Coursera which can accompany the textbook.
This is a more modern and edited version so I appreciated using this in Data Structures 2 vs. a previous edition in Data Structures 1. Data Structures II was definitely the hardest course I've taken by far...
My version was a first edition. For any technical book, but especially a programming book, errors in the code are problematic. This book was as full of errors as any programming book I've ever read.
As on might expect, the "problems to solve" were presented nearly entirely abstract and lacking any of the practical usefulness contained in many development book, most notably O'Reilly's Java Cookbook series. For example, the book discusses vectors, arrays, and linked lists without a discussion of when each solution may be most appropriate in "real world" applications.
I studied this subject at university and this book was the recommended for passing the course . Clear explanation, codes and examples Data structure is an enjoyable game!
Maybe not the best book, but one of the few CS textbooks I kept from college. A great introductions to common data structures that helps me brush up for programming interviews.