Algorithms and Data Structures With Applications to Graphics and Geometry
Jurg Nievergelt, ETH Zurich
Klaus Hinrichs, University of Muenster
Copyright Year: 2011
Publisher: Global Text Project
Conditions of Use
This book is not intended to be a comprehensive introduction to algorithms and data structures. For this, there are other books. Instead, the authors have focused on a smattering of fundamental topics that provide the student with tools for the... read more
This book is not intended to be a comprehensive introduction to algorithms and data structures. For this, there are other books. Instead, the authors have focused on a smattering of fundamental topics that provide the student with tools for the study of other topics that were left out in the book. This book is not for beginners -- and it does not teach students how to program. Throughout the book, algorithmic and data structure-related ideas are cast in Pascal-style pseudo-code that has the benefit of being easy to assimilate and has none of the complications of "modern" programming languages.
As the title suggests, this is not a dry text on algorithms and data structures. There is a welcome emphasis on applying the algorithms and the data structures covered to real problems in computer graphics and geometry. In fact, Part VI of the book is intended to show the usefulness of data structures for the purpose of efficient implementation of algorithms that manipulate geometric objects.
In spite of being a comprehensive compendium of algorithms and data structures, the book can, and has been used successfully, in undergraduate courses dealing with algorithm design and data structures. It can also be used for self-study by all those who wish to broaden their horizon and wish to acquire a solid footing in the fundamentals of computer science.
The book is highly accurate and has been tested by the authors in their classes for decades
This is not a new book. It was published (with the same title) in 1993 by Prentice Hall. The topics covered and their tested relevance guarantee that it will always be fresh and timely. I can say without hesitation that his is one of the fundamental books in the computer science literature.
The authors are well known compete scientists and educators. They pedagogical style is perfect. This said, the book is not for everyone. It assumes that the reader has been exposed to the fundamentals of programming.
This book is consistent to the extreme. Notation is consistent end-to-end and the coverage of topics is masterfully orchestrated in a coherent and pleasant way. Each chapter starts out by enumerating the learning objectives and presents motivation for the study of the chapter.
The book is organized into six parts, each of them partitioned into several chapters. The parts are both independent of each other and, at the same time, build on ideas mentioned in previous parts and chapters. It is an exemplary way of organizing a successful book.
The algorithmic and data structure topics are organized in a natural order. The various topics are motivated, discussed in some detail and then consolidated by showing how they apply to real problems selected from computer graphics and geometry.
Flawless, I could not identify and problems here.
The authors are using perfect English. I was unable to identify any grammatical errors or typos
The book does not further any hidden agenda and is not offensive in any way.
I highly recommend this book to all those who wish to acquire a solid footing in the design of algorithms and data structures.
Table of Contents
Part I: Programming environments for motion, graphics, and geometry
- 1. Reducing a task to given primitives: programming motion
- 2. Graphics primitives and environments
- 3. Algorithm animation
Part II: Programming concepts: beyond notation
- 4. Algorithms and programs as literature: substance and form
- 5. Divide-and-conquer and recursion.
- 6. Syntax
- 7. Syntax analysis
Part III: Objects, algorithms, programs.
- 8. Truth values, the data type 'set', and bit acrobatics
- 9. Ordered sets
- 10. Strings
- 11. Matrices and graphs: transitive closure
- 12. Integers
- 13. Reals
- 14. Straight lines and circles
Part IV: Complexity of problems and algorithms
- 15. Computability and complexity
- 16. The mathematics of algorithm analysis
- 17. Sorting and its complexity
Part V: Data structures
- 18. What is a data structure?
- 19. Abstract data types
- 20. Implicit data structures
- 21. List structures
- 22. Address computation
- 23. Metric data structures
Part VI: Interaction between algorithms and data structures: case studies in geometric computation
- 24. Sample problems and algorithms
25. Plane-sweep: a general-purpose algorithm for two-dimensional problems illustrated using line segment intersection
26. The closest pair
About the Book
An introductory coverage of algorithms and data structures with application to graphics and geometry.
About the Contributors
Jürg Nievergelt has been full Professor of Computer Science at the ETH Zurich from 1975 until his retirement in 2003. J. Nievergelt received a degree in mathematics from the ETH in 1962, and a Ph.D. in mathematics from the University of Illinois in 1965. From 1965-77 he was on the faculty of Computer Science at the University of Illinois at Urbana-Champaign, from assistant professor to full professor. Since 1975 professor of computer science at ETH Zurich. On leave from ETH 1985-89 he was Kenan Professor and chairman of the Computer Science Dept. at the Univ. of North Carolina at Chapel Hill. Visiting appointments include NTT's Yokosuka Electrical Communications Lab, Visiting IBM Professor at Keio University, and Visiting Professor at the National University of Singapore. He is a Fellow of ACM, IEEE and AAAS. Research Interests: Algorithms and data structures; interactive systems; user interfaces; heuristic and exhaustive search, parallel computation.
Klaus Hinrichs, Professor at University of Muenster.