Mark Allen Weiss' successful book provides a modern approach to algorithms and data structures using the C programming language. The book's conceptual presentation focuses on ADTs and the analysis of algorithms for efficiency, with a particular concentration on performance and running time. The second edition contains a new chapter that examines advanced data structures such as red black trees, top down splay trees, treaps, k-d trees, and pairing heaps among others. All code examples now conform to ANSI C and coverage of the formal proofs underpinning several key data structures has been strengthened.
When I was having trouble learning basic data structures and algorithms (linked list, hash, etc...) I turned to this book since I already knew the C language well enough. This book taught me SO much and was so clear that I learned fairly quickly. It also taught me a lot more about pointers in C as well.
A great balance of theoretical rigorous and practical implementation. The book covers undergraduate data structure + algorithm. The level of theoretical rigorous is less than CLRS but I find it is a good supplemental to CLRS. For example, the author gives relative concise but still detail enough to the graph algorithms. CLRS gives much in-depth analysis. I would highly recommend anyone who wants to start learning algorithm to try out this book. In addition, the book also covers many advanced data structures like skiplist, kd-tree, and red-black tree.
I think that this is a great book for anyone starting to learn about data structures and algorithms. If you have some experience with any coding language, you should try this book. It is to the point and not at all complex sparing the idea and concept that is being talked about. In the end the chapters on advanced algorithms are very good.