Offered as an introduction to the field of data structures and algorithms, Open Data Structures covers the implementation and analysis of data structures for sequences (lists), queues, priority queues, unordered dictionaries, ordered dictionaries, and graphs. Focusing on a mathematically rigorous approach that is fast, practical, and efficient, Morin clearly and briskly presents instruction along with source code.
This is a nice and rigorous introduction to the topic of data structures and algorithms. The book is well-structured (no pun intended); the order of the chapters makes sense, some of the later chapters build on some of the earlier chapters. There is a common thread throughout and although the writing is minimal and to-the-point, it still feels like a journey through data structures.
If you have mainly written programs without giving much thought to efficiency and were mostly concerned with getting the desired result, this textbook is going to be an appropriate next step. Even if you don’t grasp every theorem and proof—I didn’t—, you will certainly gain the crucial reflex of thinking about the runtime complexity and the space efficiency of your algorithms.
Personally, my favourite takeaway from Open Data Structures is the ubiquity of randomness. If you, like myself, are fascinated by randomness, I promise you’re going to enjoy the various uses Morin presents of the concept. In many situations, the optimal implementation of a data structure requires and is built on randomness—fascinating!
Other qualities: Morin offers source codes and often adds welcomed visualizations of some methods (via figures). That being said, I highly encourage you to look online for (visual) simulations of the data structure/algorithm at hand—doing this has contributed to improving my understanding of the text.
On a final note, although there is a chapter on the mathematical prerequisites, some basic knowledge of probability (e.g., indicator random variable) may allow for smoother reading.
Used it for my class Comp2402. Decent book and simple enough most of the time. Some of the data structures were more esoteric, eg. Scapegoat trees, skiplist, dual array deques but they served as good learning tools.
I loved it. This is a super high quality open source and free book on data structures that teaches the material well. It is concise, rigourous, and well written.
Update: In the many years since I've gone through it in undergrad, it is still my favourite data structures reference.