Jump to ratings and reviews
Rate this book

Data Structures and Algorithms in Java

Rate this book
The design and analysis of efficient data structures has long been recognized as a key component of the Computer Science curriculum. Goodrich, Tomassia and Goldwasser's approach to this classic topic is based on the object-oriented paradigm as the framework of choice for the design of data structures. For each ADT presented in the text, the authors provide an associated Java interface. Concrete data structures realizing the ADTs are provided as Java classes implementing the interfaces. The Java code implementing fundamental data structures in this book is organized in a single Java package, net.datastructures. This package forms a coherent library of data structures and algorithms in Java specifically designed for educational purposes in a way that is complimentary with the Java Collections Framework.

736 pages, Paperback

First published January 1, 1998

70 people are currently reading
574 people want to read

About the author

Michael T. Goodrich

34 books26 followers

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
107 (35%)
4 stars
83 (27%)
3 stars
81 (26%)
2 stars
25 (8%)
1 star
6 (1%)
Displaying 1 - 18 of 18 reviews
Profile Image for Arun.
217 reviews70 followers
June 14, 2017
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
Profile Image for Patrick Jennings.
3 reviews2 followers
January 1, 2011
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.
Profile Image for Nick Greenquist.
126 reviews4 followers
November 9, 2018
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.'
Profile Image for Skywalker Hu.
158 reviews3 followers
April 27, 2025
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.
Profile Image for Mark Lacanilao.
14 reviews
February 19, 2023
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.
26 reviews
May 5, 2023
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.
Profile Image for Daniel Apatiga.
41 reviews1 follower
August 12, 2014
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.
Profile Image for Marouumi.
10 reviews1 follower
April 19, 2014
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.
Displaying 1 - 18 of 18 reviews