For the introductory Data Structures course (CS2) that typically follows a first course in programming.
This text continues to offer a thorough, well-organized, and up-to-date presentation of essential principles and practices in data structures using C++. Reflecting the newest trends in computer science, new and revised material throughout the Second Edition places increased emphasis on abstract data types (ADTs) and object-oriented design.
- NEW-New chapter with expanded and improved discussion of C++'s I/O and string classes.
- NEW-New chapter on searching--Including modified and expanded treatment of binary search trees and hash tables.
- NEW-Revised chapter on inheritance.
- NEW-Revised Chapter 1--Introduces other software engineering methods besides the waterfall model, introduces UML, describes top-down design and object-oriented design in detail, relates some of the "horror stories" of bad software design.
- NEW-Expanded chapter on queues--Including array-based and linked-list implementations, and a revised simulation case study.
- NEW-Earlier presentation of lists (Ch. 3) --Before stacks and queues. Revised to include array-based (static and dynamic) list classes, an introduction to linked lists, and more standard symbols in diagrams.
- NEW-Earlier presentation of pointers and dynamic allocation--Including an expanded discussion of the new operator (Ch. 2)
- NEW-Marginal icons--Used to call attention to key features and warnings.
- NEW-Uniform method of displaying ADT specifications in a UML-style diagram.
- NEW-A new appendix "From Java to C++"--Helps those making a transition from Java to C++.
- NEW-Array-based and linked-list implementations of stacks.
- NEW-Student CD--Contains all of the source code from the text.
- Over 1,000 exercises--Including written exercises, programming problems, and projects.
- Emphasis on abstract data types (ADTs) throughout--Reinforcing the study of data structures in the spirit of OOP.
- Coverage of the containers and algorithms from the Standard Template Library--Introducing the most up-to-date and powerful tools in C++.
- Coverage of advanced C++ topics--Including recursion, function and class templates, inheritance, and polymorphism.
- Discussions of all of the usual data structures, such as stacks and queues--Builds a foundation for later courses
- Discussion of algorithm development, analysis, and verification--Provided training with important tools that will most likely be needed in future computer science work.