With an emphasis on data structures and algorithm analysis, this book includes programming examples in C++. The author concentrates on the principles required to select or design a data structure that will most effectively solve a problem.* Provides an understanding of fundamental data structures through clear explanations, illustrations, and case studies. * Uses actual Java code for nearly all algorithms. * Presents basic analysis terminology early in the text and analysis techniques throughout. The techniques provided assume a range of instructional levels so that they may be used by students with varying backgrounds in the subject. * Provides integrated treatment of both in-memory and disk- based algorithm techniques to allow students to see how these techniques are related, and the key differences between them. * Supports the concept that algorithm analysis is practical and helps in the design of real programs by presenting data structure costs and benefits. * Includes exercises as well as many suggestions for projects to provide students with hands-on experience. * Presents several new data structures, including skip lists, multidimensional search trees, and amortized analysis are discussed. * Provides a chapter on the limits of computation: a brief introduction to computability and NP-completeness to permit an easy-to-understand introduction to these topics.
In this eagerly anticipated revision, Clifford A. Shaffer provides a thorough and comprehensive treatment of fundamental data structures and the principles of algorithm analysis. The author focuses on teaching students and practitioners how to create efficient data structures and algorithms and to understand the principles required to select or design the data structure that will best solve the problem. The integrated treatment of algorithm analysis, file processing, and efficiency places this book in a class of its own.
Features:
- Algorithm analysis techniques are presented throughout the text. Analysis is closely tied to the needs of practicing programmers and students. It is not presented as theory for theory's sake.
- Coverage of basic file processing techniques as an integral component of efficient data structures and algorithm analysis.
- C++ is used as a tool to illustrate data structure concepts with clear, simple-to-understand examples. All programming examples are actual C++ code.
- This book presents each data structure and algorithm as having costs and benefits, and provides the reader with a thorough understanding of how to assess the costs and benefits, including space comparisons for data structures, space/time trade-offs, and special-purpose uses of data structures or algorithms.
New to this Edition:
- Completely rewritten coding examples that are clear and illustrative. Extensive use of object-oriented programming techniques.
- Expanded coverage of recursion, Dictionary ADT, balanced tress, and buffer pools.
- More emphasis on techniques for object-oriented program design.
- More exercises and examples. Close to 350 problems and projects.