Building on widespread use of the C++ programming language in industry and education, this book provides a broad-based and case-driven study of data structures -- and the algorithms associated with them -- using C++ as the language of implementation.
About the Author
Adam Drozdek is Associate Professor of Computer Science at Duquesne University.
Absolutely the best C++ DS&A book
On my bookshelf right now I have 13 books on DS&A using C++. Every time I am in need of a new type of data structure or algorithm, and quickly scan through each of them to determine which seem to have the most relevant information, and also which have useable source-code. Drozdek's book is almost always the book I end up selecting to learn a new topic.
Without a doubt, Drozdek's DS&A book is the most complete and well-written of its kind. It includes a chapter of graphs, which many books surprisingly omit. Also, as of the 3rd edition, it includes a chapter on string matching. As far as I know, this is the *only* C++ DS&A book to dive into this subject.
Surprisingly (because of such a broad-scoped book), the material presented in the string matching chapter is modern and incredibly useful. I found the coverage of suffix tries to be excellent. According to Professor Drozdek (via email correspondence), this chapter is actually a compressed version of what was to be an entire C++ book on string matching. Apparently no publisher would touch such a 'specialized' book. How short-sighted of them!
I work in a research-intensive company focused on developing cutting-edge algorithms to solve difficult modern problems. We do the majority of our coding in C++, which is what originally attracted me to Drozdek's book. Since then, I have referred several colleagues to this book, all of which now use it regularly and are loving it.
My only complaint about this book is that it doesn't discuss primality or random-number generation at all. So many algorithms rely heavily on one or both of these, so I find it strange that this book (and most others) completely ignore them.
As for the reviewer who negatively commented "worst written educational book I have ever read", this person obviously bought Drozdek's book expecting to learn C++ and not DS&A. If you're looking to learn C++, I recommend "C++ Primer Plus (5th Edition)" maligned publisher, it really is an excellent book for learning C++ (and also as a reference for an experienced programmer).
Depending on your needs, you might look into supplementing Drozdek's book with Robert Sedgewick's books 'Algorithms in C++'. His books do not go as deep as Drozdek does, but he provides an enormous number of fully implemented algorithms that don't exist in any other C++ DS&A book. Be sure to get the 3rd edition; it is much improved over the 2nd.
Here's a complete TOC of Drozdek's book (3rd edition):
Table of Contents
1. Object-Oriented Programming Using C++
2. Complexity Analysis
3. Linked Lists
4. Stacks and Queues
6. Binary Trees
7. Multiway Trees
11. Data Compression
12. Memory Management
13. String Matching
A: Computing BIG-O
B: Algorithms in the Standard Template Library
Clear and concise, good examples, not too heavy
This book was used in my Junior-level Advanced Data Structures and Algorithms course. This was the first semester that we used this book and people seemed to like it. Apparently, the old textbook for my class had too much code and not enough explaination. The author presents most of the algorithms in pseudo-code as apposed to a full implementation, but the code exaples are plentiful. This book will get you learning advanced topics in data structures and algorithms in no time. I learned a lot from this book, and read the first 10 chapters. The scope of topics discussed is large and is presented in top-down fashion. There were even several topic areas that we didn't have time to spend on, like self-organizing lists, networks, self-balancing trees, data compression, and garbage collection.I was tempted to only give 4 stars in this review because there are a painful number of typos/errors in this text. I was usually able to see beyond the errors, but it made it more difficult than it should have been. A new edition should seriously address this.A full grasp of C++ is necessary to read through this book, but that should be given when studying general data structures and algorithms. A C++ reference will be very helpful when doing programming assignments because this is not a book on the language.This book will probably always be on my shelf. Even though all of the code is in C++, which is not eternal, it does not rely heavily on the language. Most of the algorithms are given in pseudo-code, and the data structures are developed independent of the laugage choice. I still plan on reading the sections that we skipped in class. I would recommend this text to any computer science student.
Excellent way to learn data structures!
After a frustrating search for good( and understandable ) books for learning Data Structures, I chanced to see this book and bought it, as it closely matches our CS syllabus. I was lucky and not wrong in trusting Mr.Drozdek. The explanation is very detailed, with illustrations when needed and understandable code. I love this book! I recommend it for anyone who's serious about learning data structures.
Your Review: Note: HTML is not translated!
Rating: Bad Good
Enter the code in the box below: