About the Book: Data Structures and Algorithm Analysis inC In this second edition of his best-selling book, Data Structures and Algorithm Analysis in C, Mark AllenWeiss, continues to refine and enhance his innovative approachto algorithms and data structures. Using a C implementation, hehighlights conceptual topics, focusing on ADTs and the analysis ofalgorithms for efficiency as well as performance and running time.Dr.Weiss also distinguishes Data Structures and Algorithm Analysisin C with the extensive use of figures and examples showing thesuccessing stages of an algorithm, his engaging writing style, anda logical organization of topics. Includes a chapter on algorithm and design techniques that cover greedy algorithms, divide and conquer algorithms, dynamic programming, randomized algorithms and backtracking. Presents current topics and newer data structures such as Fibonacci heaps, skew heaps binomial queues, skip lists and splay trees. Contains a chapter on amortized analysis that examines the advanced data structures presented earlier in the book. Provides a new chapter on advanced data structures and their implementation covering red black trees, top down splay trees, treaps, k-d tress, pairing heaps, and more. Incorporates new results on the average case analysis of heap sort. Contents Preface Introduction Algorithms Analysis Lists, Stacks, and Queues Trees Hashing Priority Queues (Heaps) Sorting The Disjoint Set ADT Graphs Algorithms Algorithm Design Techniques Amortized Analysis Advanced Data Structures and Implementation Index Solved Question Papers
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.