Appropriate for a sophomore/junior level second course in data structures and algorithms analysis (CS7) in departments of Computer Science.
This book thoroughly covers key data structures at the undergraduate level. With a focus on how to assess costs and benefits, it teaches students how to create efficient data structures and algorithms and how to adopt to new design challenges. Students are taught how to assess applications needs to find data structures with matching capabilities.
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.