FREE Delivery in the UK.
Usually dispatched within 1 to 3 weeks.
Dispatched from and sold by Amazon.
Gift-wrap available.
Data Structures and Algor... has been added to your Basket
+ £2.80 UK delivery
Used: Very Good | Details
Condition: Used: Very Good
Comment: Great condition for a used book! Minimal wear. 100% Money Back Guarantee. Shipped to over one million happy customers. Your purchase benefits world literacy!
Have one to sell?
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See this image

Data Structures and Algorithms in Java Hardcover – 26 Nov 2003

See all 5 formats and editions Hide other formats and editions
Amazon Price New from Used from
"Please retry"
£23.61 £5.17
"Please retry"

There is a newer edition of this item:

£60.95 FREE Delivery in the UK. Usually dispatched within 1 to 3 weeks. Dispatched from and sold by Amazon. Gift-wrap available.

Product details

  • Hardcover: 704 pages
  • Publisher: John Wiley & Sons; 3rd Edition edition (26 Nov. 2003)
  • Language: English
  • ISBN-10: 0471469831
  • ISBN-13: 978-0471469834
  • Product Dimensions: 19.6 x 3.2 x 24.6 cm
  • Average Customer Review: 3.5 out of 5 stars  See all reviews (2 customer reviews)
  • Amazon Bestsellers Rank: 4,487,002 in Books (See Top 100 in Books)
  • See Complete Table of Contents

More About the Author

Discover books, learn about writers, and more.

Product Description

From the Back Cover

Fundamental Data Structures Using a Consistent Object–Oriented Framework

Goodrich and Tamassia′s Third Edition of Data Structures and Algorithms in Java incorporates the object–oriented design paradigm, using java as the implementation language. The authors provide intuition, description, and analysis of fundamental data structures and algorithms. Numerous illustrations, web–based animations, and simplified mathematical analyses justify important analytical concepts.

Now fully revised and updated, this Third Edition features an entirely new chapter on recursion, expanded coverage of splay trees, and new examples and programming exercises throughout.


  • Covers analysis and design of fundamental data structures.
  • Presents a consistent object–oriented viewpoint throughout the text.
  • Java code examples are used extensively, with source code provided on the website.
  • Hundreds of exercises that promote creativity help readers learn how to think like programmers and reinforce important concepts.
  • On–line animations and an effective art program in the text illustrate data structures and algorithms in a clear, visual manner.

Access additional resources on the web ( or, including:

About the Author

Professors Goodrich and Tamassia are well–recognized researchers in algorithms and data structures, having published many papers in this field, with applications to Internet computing, information visualization, computer security, and geometric computing. They 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.

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 University of California, Irvine. Previously, he was a professor at Johns Hopkins University. He is an editor for the International Journal of Computational Geometry & Applications 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 editor–in–chief for the Journal of Graph Algorithms and Applications and an editor for Computational Geometry: Theory and Applications. He previously served on the editorial board of IEEE Transactions on Computers.

In addition to their research accomplishments, the authors also have extensive experience in the classroom. For example, Dr. Goodrich has taught data structures and algorithms courses, including Data Structures as a freshman–sophomore level course and Introduction to Algorithms as an upper level course. He has earned several teaching awards in this capacity. His teaching style is to involve the students in lively interactive classroom sessions that bring out the intuition and insights behind data structuring and algorithmic techniques. Dr. Tamassia has taught Data Structures and Algorithms as an introductory freshman–level course since 1988. One thing that has set his teaching style apart is his effective use of interactive hypermedia presentations integrated with the Web.

The instructional Web sites, and, supported by Drs. Goodrich and Tamassia are used as reference material by students, teachers, and professionals worldwide.

Inside This Book (Learn More)
First Sentence
Building data structures and algorithms requires that we communicate detailed instructions to a computer, and an excellent way to perform such communication is using a high-level computer language, such as Java. Read the first page
Explore More
Browse Sample Pages
Front Cover | Copyright | Table of Contents | Excerpt | Index | Back Cover
Search inside this book:

What Other Items Do Customers Buy After Viewing This Item?

Customer Reviews

3.5 out of 5 stars
5 star
4 star
3 star
2 star
1 star
See both customer reviews
Share your thoughts with other customers

Most Helpful Customer Reviews

10 of 11 people found the following review helpful By Franky Leeuwerck on 27 Jan. 2001
Format: Hardcover
This book starts with an introduction on the concepts of algorithm runtime and memory space usage complexities. After this, the reader will discover, chapter by chapter, what the essence is of particular data structures, starting with stacks, queues, ... graphs, .. etc. Each of these abstract data types is mentioned with different implementations, pseudocode and/or java code. Besides the ADT's, some interesting patterns are discussed, also fundamental algorithm methods are explained in depth,s.a. divide-and-conquer, dynamic programming ... This book contains a lot of related topics, eg. computational geometry, sorting, ... Although, mathematical approaches are often used for analysing algorithms and structures, the book is still very readable. Code examples can be downloaded from the book's website.
Franky Leeuwerck
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
5 of 15 people found the following review helpful By A Customer on 21 Aug. 2001
Format: Hardcover
I looked through this book to compare it to others I had seen and it is very hard to understand, even for me (a 3rd yr comp sci major who already understands this topic)
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again

Most Helpful Customer Reviews on (beta) 28 reviews
26 of 28 people found the following review helpful
Third edition is much improved 14 May 2005
By David Schaich - Published on
Format: Hardcover
When I learned that this was the required book for my introductory data structures class this semester, I was somewhat worried by the large number of very negative reviews I saw it had received here. However, during the first class meeting, the professor made a point of instructing us to get the third edition (published in 2004), explaining that the differences between the second and third editions were significant.

Judging by the older reviews below, he was right - the book I read seems to bear little if any resemblance to the one denounced by the other reviewers. I found it clear and readable, though it was rather basic and dry. But then, I wasn't expecting great literature - this is a introductory compsci textbook, after all. Though it could be dull at times, it generally managed to get its information across clearly, which is all it needs to do. There were some typos, of course, though probably not more than should be expected to accompany such a major revision. The book's main flaw was an index that had essentially no relation to the actual text itself. A corrected index is available at the book's Web site.

In terms of organization, Goodrich and Tamassia start off with a brief introduction to Java, object oriented design and a brief and very basic discussion of running time and asymptotic analysis. They then work their way through basic data structures and abstract data types - stacks, queues, vectors, lists, trees (general, binary, and binary search), priority queues, heaps, dictionaries, hash tables and graphs. They discuss the structures' purposes and major operations, analyze the operations' running times, and include decent, heavily-documented Java implementations of some of the structures and methods. They also do some stuff with algorithms, though generally nothing very complex or sophisticated. I used this book in an introductory data structures course at a liberal arts college, which managed to cover pretty much everything in the book with little difficulty.

There are a lot of exercises at the end of each chapter. Goodrich and Tamassia divide them up into progressively more complex "Reinforcement", "Creativity" and "Projects" sections. My instructor preferred to assign problems and programming assignments of his own creation, though, so I don't know how helpful or useful the exercises in the book actually are.

All in all, it seem Goodrich and Tamassia noticed the sort of reviews the earlier editions of this book were getting and took steps to correct the many problems they had. I expect that if you have to use the book in a data structures course, you'll find it at least reasonably clear and generally acceptable. As long as you're using the third edition, that is.
17 of 19 people found the following review helpful
Not Recommended 30 Mar. 2003
By Alex Green - Published on
Format: Hardcover
Like many other reviewers, I had to purchase this book for one of my CS courses. As a reference book, it gets no more than 1 star. I find it often confusing in its explanations, incomplete code examples and uneven pace. I understand that it was designed to be a textbook, but it miserably fails to be of any value to a student. For 100+ bucks, I expected a lot more.
21 of 25 people found the following review helpful
A hideous book for undergrad D&S 26 Feb. 2003
By Arnold Henderson - Published on
Format: Hardcover
This is required reading in a CS course I take, and I find it to be an annoyingly confusing book. The language is exceptionally unclear, remeniscient of a bad math book on calculus. The code examples of ideas are sparse and skinny on details. Far too often something is "trivial" or left as an exercise. In addition the accompanying exercises are far harder than the in text material (what little there is to look for for reference). Some subjects which I would expect to have several pages on, IE: the ideas of polymorphism, casting and inheritanc , contain a mere page or less. The claim that the book is "well illustrated" is also quite false, unless you feel like counting the pictures in the headers of the chapters. Overall I have found this book to be a meanace to my learning the material and I am thankfull that I possess an exceptional CS teacher who is able to fully explain what the book fails to do. {Hint to the authors: your book should NOT read like a lecture, it should read like a real textbook, one that actually covers MORE than the professor does in class instead of far less.)
As a side note, I wish to note that Professor Morelli's book Java, Java ,Java (ISBN 0130333700) is most excelent (although it does not cover the same topic) some of the intro materials (chapters 1 and 2) overlap, and I found myself referring to it constantly in preference to this monstrosity that I now call a textbook.
6 of 6 people found the following review helpful
Not a good text for an undergrad Algorithms course 23 Oct. 1998
By A Customer - Published on
Format: Hardcover
While this may be a good book for expanding knowledge of Java for an experienced Java programmer, this book is not particularly successful as an undergraduate text. It is especially poor as a (ACM/IEEE) CO1 text. The book inadequately explains Java features not covered in popular introductory Java based CS1 and CS2 introductory programming texts. Further, the book's explanation of data structures and algorithms are at best muddled. The book's exposition on implimentation issues is almost non-existent. The reader is left to intuit why linked structures are being implimented the way that they are. The chapter on priority queues is especially bad in this regard. No clear explanation is proved for why heaps have peripheral null elements. Further, the text does not adequately support students coming into the course with deficiences in MA1 (discrete mathematics) and especially in asymptotic analysis. Fortunately, there are alternative books coming onto the market. I sincerely wish that one that I received a few weeks ago was around when I adoptiing a text for my Design and Analysis of Algorithms course.
11 of 13 people found the following review helpful
This book is useless 15 April 2001
By JC - Published on
Format: Hardcover
I was required to purchase this book for a second-semester data structures class. It is totally useless to me. There are very few Java examples, and the few examples they do have are very poor examples. The author's website is just as useless as the book. I tried to access the student hint server quite a few times and always came away with nothing. I always get a message saying "Sorry, no hint available for this exercise". If you want a good book covering data structures check out Data Structures and Algorithms in Java by Mitchell Waite ISBN 1-57169-095-6. We used this book in my first-semester Data Structures course. It covers everything in detail and also gives detailed source code. It costs less than Goodrich & Tamassia's Data Structures book, is twice the size of their book, it covers everything that their book covers, and comes with a cd containing sample applets that demonstrate the concepts you are learning as well as the source code for all programs in the book.
Were these reviews helpful? Let us know