In this book, the authors incorporate the object-oriented design paradigm using java as the implementation language, while also providing intuition and analysis of fundamental data structures and algorithms. All this is done in a clear, friendly writing style that uses pictures and simplified mathematical analyses to justify important analytic concepts. About The Professor Goodrich and Tamassi are well-recognized researchers in data structures and algorithms, having published many papers in this field, with applications to internet computing, information visualization, geographic information systems, computer security, and computer-aided layout. They have an extensive record of research collaboration and have served as principal investigators in several joint projects sponsored by the National Science Foundation, the Army Research Office, and the Defense Advanced Research Projects Agency. They are also active in educational technology research, with special emphasis on algorithm visualization systems and infrastructure support for distance learning. Michael Goodrich received his Ph.D. in Computer Science from Purdue University in 1987. He is currently a professor in the Department of Computer Science at John Hopkins University, and codirector of the Johns Hopkins Center for Algorithms Engineering. He is an editor for the International Journal of Computational Geometry & Applications, Journal of Computational and System Sciences, and Journal of Graph Algorithms and Applications. Roberto Tamassia received his Ph.D. in Electrical and Computer Engineering from the University of Illinois at Urbana-Champaign in 1988. He is currently a professor in the Department of Computer Science at Brown University. He is also an editor for Computational Theory and Applications, and the Journal of Graph Algorithms and Applications, and previously served on the editorial board of IEEE Transactions on Computers. Table Of ?Java Programming ?Object-Oriented D
Perfect book for self study. Had to put off reading it after seeing poor reviews on amazon. It is a shame that this book is not known more widely than what it deserves. Need to go one more round doing most of the exercises to make the concepts stick.
Best Algorithm/DataStructure book with almost good OO java implementations - save for the eye gauging generics syntax
Required for data structures class. I found better descriptions of the algorithms covered in this book on Wikipedia. At least the book contains Java code for some of the implementations and examples of how the data structures work. A good book for the beginner. You can find better as a reference.
I hate Java but I have to teach it my students this semester as a TA for a Data Structures class. This book was surprisingly very very good. It covers all the essential data structures you need to know and also even the essential algorithms you need to know (even some advanced ones). The authors did a great job seperating the language from the concepts and only bringing them together in the super helpful implementations. I've read too many CS books where entire concepts/algorithms are written in math equations and actual implementations are 'left to the reader.'
Required textbook for my Java data structure class. Contrary to some other reviewers, I like concrete implementations in the book. Maybe more detailed explanation when it comes to some relatively more advanced algorithms. For example, in one of Chapter 13's exercises, authors talk about Rabin-Karp. Sounds really complex to me. It would be helpful to list a couple of recommended readings.
In my quest to find a digestible DSA book that doesn't just gloss over implementation in pseudocode, this is an improvement from the textbook I was provided at community college.
Our teacher based his classes almost completely on this book, so keep in mind that I am probably biased.
While especially the beginning of the book is important to understand for every developer (e.g. arrays, linked-lists, hash-sets, time-complexity, etc.), I found the book to go into an unuseful direction after some time. I am not sure why so many people find it relevant for day-to-day development, but I sincerely hope only very few developers actually implement binary trees by hand for real-world applications.
In my opinion, this book should be more about understanding the concepts of a framework you're using, not about going into the depth required to actually implement it yourself. And is more relevant data-structure related stuff you need to actually use in actual day-to-day development not mentioned in this book, as opposed to covered things like e.g. splay-trees, which I find to be a niche structure you're almost certainly never going to use.
Then again, it is probably more relevant for "low-level" developers that use something like C, but for Java developers (which this book heavily leans on) it shouldn't be such a big deal to manually implement tree-rotations.
I did like the style of the book though. From the presentation of pseudo-code to the visualizations, you can really feel that the authors wanted to provide high-quality material.
Maybe it's unfair to treat the book based on the topic it's covering. And if you focus on the first half, it is a good book that starts off with little knowledge required beforehand and teaches you some vital concepts of software development. But I cannot recommend it further than that.
While I had difficulty understanding the material at first, it was because I felt mainly confused about how to program the concepts from ground zero. Then I realized I wasn't really reading as closely to the book as I had intentioned, because the author does in fact have explanatory statements that suggest most of the code that is covered is included in the Java library. I had to highlight the book on my kindle, which is an excellent rendition of the textbook, in order to make sure I understood the concepts, which is why I gave it a 4 out of 5 for not making concepts easily understandable.
The book had so many not-well organized written information. Not suitable for teaching Data Structure courses in the college for it lacks consistency and to-solve problems.