Data structures and algorithms are presented at the college levelin a highly accessible format that presents material with one-pagedisplays in a way that will appeal to both teachers and students. Thethirteen chapters cover: Models of Computation, Lists, Induction andRecursion, Trees, Algorithm Design, Hashing, Heaps, Balanced Trees,Sets Over a Small Universe, Graphs, Strings, Discrete FourierTransform, Parallel Computation.Key features: Complicated concepts are expressed clearly in asingle page with minimal notation and without the "clutter" of thesyntax of a particular programming language; algorithms are presentedwith self-explanatory "pseudo-code." _ Chapters 1-4 focus onelementary concepts, the exposition unfolding at a slower pace. Sampleexercises with solutions are provided. Sections that may be skippedfor an introductory course are starred. Requires only some basicmathematics background and some computer programming experience. _Chapters 5-13 progress at a faster pace. The material is suitable forundergraduates or first-year graduates who need only review Chapters 1-4. _ This book may be used for a one-semester introductory course(based on Chapters 1-4 and portions of the chapters on algorithmdesign, hashing, and graph algorithms) and for a one-semester advancedcourse that starts at Chapter 5. A year-long course may be based onthe entire book. _ Sorting, often perceived as rather technical, isnot treated as a separate chapter, but is used in many examples(including bubble sort, merge sort, tree sort, heap sort, quick sort,and several parallel algorithms). Also, lower bounds on sorting bycomparisons are included with the presentation of heaps in the contextof lower bounds for comparison-based structures. _ Chapter 13 onparallel models of computation is something of a mini-book itself, anda good way to end a course. Although it is not clear what parallel
"Intended as a teaching aid for college and graduate-level courses on data structures, the material in this book has been aligned to support the lecture style. All the algorithms in the book are provided in pseudocode, so that students can implement the algorithms in a programming language of their choice. The book addresses basic as well as advanced algorithms in data structures, with introductory but adequate material about parallel computing models also provided... At the end of each chapter, there are sample exercises with solutions that help students to test their understanding of the book. There are also unsolved exercises that can be of use to instructors for course assignments... Each chapter also includes notes at the end, providing a good summary of the topics covered, which is very useful for students taking the course. The author has done a commendable job in outlining various algorithms for a problem, and also in comparing their merits... [The] approach of the book is easy to understand for students with a strong mathematical background." -ACM Computing Reviews