Features
- Stresses recursion through a range of applications and development of criteria for use.
- Features numerous case studies that integrate various topics into programs of various size.
- Discusses major principles of software engineering and applies them to large programming projects.
- Uses the C programming language throughout. Briefly reviews the syntax of C in chapter 1 and provides a brief introduction to the language in an appendix.
- Reviews several topics (in appendices) that are often missing from student's preparation:
- Features exercises, programming projects and sample programs (large and small) throughout.
- Emphasizes the process of data abstraction and abstract data types (ADTs), separating ADTs from implementation decisions.
- Strengthens the documentation by including informal specification (pre- and postconditions) with all subprograms.
- Treats recursion much earlier and emphasizes it repeatedly throughout.
- Revises all programs to emphasize data abstraction, to develop and employ reusable code, and to strengthen uniformity and elegance of style.
- Adds coverage several more advanced, modern topics, e.g.:
- Contains new case studies — e.g., a miniature text editor (Ch. 5).
- Contains new exercises and programming projects — including continuing projects on information retrieval that request students to compare the performance of several different data structures and algorithms.
- Offers Internet access to the source code for all the programs and program extracts printed in the text.
- Gathers material on graph theory and graph algorithms into a separate chapter.
- Streamlines the treatment of lists.
- Copyright 1997
- Edition: 2nd
-
Book
- ISBN-10: 0-13-288366-X
- ISBN-13: 978-0-13-288366-5
Progressing from the concrete to the abstract — and using numerous, substantial case studies and sample programs — this book explores structured problem solving, data abstraction, software engineering principles, and the comparative analysis of algorithms as fundamental tools of program design. KEY TOPICS: Emphasizes principles of top-down refinement, program design, review, and testing. Uses the C programming language throughout. Offers Internet access to the source code for all the programs and program extracts printed in the book.
Table of Contents
1. Programming Principles.
2. Introduction to Software Engineering.
3. Stacks and Recursion.
4. Queues and Linked Lists.
5. General Lists.
6. Searching.
7. Sorting.
8. Tables and Information Retrieval.
9. Binary Trees.
10. Multiway Trees.
11. Graphs.
12. Case Study: The Polish Notation.
Appendix A. Mathematical Methods.
Appendix B. Removal of Recursion.
Appendix C. An Introduction to C.
Index.
New To This Edition
- NEWStrengthens the documentation by including informal specification (pre- and postconditions) with all subprograms.
- NEWTreats recursion much earlier and emphasizes it repeatedly throughout.
- NEWRevises all programs to emphasize data abstraction, to develop and employ reusable code, and to strengthen uniformity and elegance of style.
- NEWAdds coverage several more advanced, modern topics, e.g.:
- Splay trees.
- Red-black trees.
- Amortized algorithm analysis.
- NEWContains new case studies e.g., a miniature text editor (Ch. 5).
- NEWContains new exercises and programming projects including continuing projects on information retrieval that request students to compare the performance of several different data structures and algorithms.
- NEWOffers Internet access to the source code for all the programs and program extracts printed in the text.
- NEWGathers material on graph theory and graph algorithms into a separate chapter.
- NEWStreamlines the treatment of lists.