Data Structures with C++ Using STL, 2nd edition

Published by Pearson (July 17, 2001) © 2002

  • William H. Ford
$197.32

  • Hardcover, paperback or looseleaf edition
  • Affordable rental option for select titles

For CS2/Data Structures courses using C++.

This book uses a modern object-oriented approach to data structures, unified around the notion of the Standard Template Library (STL) container classes. The book presents a systematic development of data structures supported by numerous examples and complete programs. The authors separate the applications of a data structure from its implementation. In the later chapters, the book transitions students into the study of applied algorithms. This creates a bridge to subsequent courses in advanced data structures and algorithms.

  • NEW - Data structures presented using the model of the Standard Template Library (STL)—Over the course of the book, student master the use and implementation of the STL container classes.
    • Teaches students the modern approach to data structures. Ex.___

  • NEW - Simple algorithms integrated throughout the text.
    • Includes an applied study of interesting and classical algorithms that illustrate the data structures using only simple mathematical concepts. (Big-O notation is introduced intuitively). Ex.___

  • NEW - Many additional figures integrated into the presentation.
    • Lead students through the concepts. Ex.___

  • NEW - ADT (Abstract Data Type) for each data structure—Immediately used to solve appropriate problems.
    • Book provides students with many examples before presenting the corresponding implementation so that students see a data structure unfold and are then able to trace back through the examples when looking at the implementation. Ex.___

  • NEW - Early and accessible introduction to templates and iterators.
    • Allows students to understand and use powerful abstractions available in modern data structures. Ex.___

  • NEW - Later chapters (Chapters 11 - 17) supplement the CS2 course.
    • Appropriate material for an advanced data structures and algorithms course. Ex.___

  • Use of modern C++ constructs in developing data structures and their applications—Provides enough language detail to sufficiently understand the constructs. A fuller explanation of language details available on the Companion Website.
    • Reflects the type of data structures that students would use in the real world. Ex.___

  • Extensive pedagogy—Includes many complete programs with output, case studies, review exercises with solutions, extensive written exercises and programming exercises, programming projects, and glossary of key terms.
    • Helps students learn, review, and retain material. Ex.___

  • Data structures presented using the model of the Standard Template Library (STL)—Over the course of the book, student master the use and implementation of the STL container classes.
    • Teaches students the modern approach to data structures. Ex.___

  • Simple algorithms integrated throughout the text.
    • Includes an applied study of interesting and classical algorithms that illustrate the data structures using only simple mathematical concepts. (Big-O notation is introduced intuitively). Ex.___

  • Many additional figures integrated into the presentation.
    • Lead students through the concepts. Ex.___

  • ADT (Abstract Data Type) for each data structure—Immediately used to solve appropriate problems.
    • Book provides students with many examples before presenting the corresponding implementation so that students see a data structure unfold and are then able to trace back through the examples when looking at the implementation. Ex.___

  • Early and accessible introduction to templates and iterators.
    • Allows students to understand and use powerful abstractions available in modern data structures. Ex.___

  • Later chapters (Chapters 11 - 17) supplement the CS2 course.
    • Appropriate material for an advanced data structures and algorithms course. Ex.___

(Most chapters end with Chapter Summary, Classes and Libraries in the Chapter, Review Exercises, Written Exercises, Programming Exercises and Programming Projects.)

Preface.


1. Introduction to Data Structures.

What is this Book About? Abstract View of Data Structures. An ADT as a Class. Implementing C++ Classes. Declaring and Using Objects. Implementing a Class with Inline Code. Application Programming Interface(API). Strings.



2. Object Design Techniques.

Software Design. Handling Runtime Errors. Object Composition. Operator Overloading.



3. Introduction to Algorithms.

Selection Sort. Simple Search Algorithms. Analysis of Algorithms. Analyzing the Search Algorithms. Making Algorithms Generic. The Concept of Recursion. Problem Solving with Recursion.



4. The Vector Container.

Overview of STL Container Classes. Template Classes. The Vector Class. Vector Applications.



5. Pointers and Dynamic Memory.

C++ Pointers. Dynamic Memory. Classes Using Dynamic Memory. Assignment and Initialization. The Minivector Class. The Matrix Class.



6. The List Container and Iterators.

The List Container. Iterators. General List Insert And Erase Operations. Case Study: Graduation Lists.



7. Stacks.

The Stack ADT. Recursive Code and the Runtime Stack. Stack Implementation. Postfix Expressions. Case Study: Infix Expression Evaluation.



8. Queues and Priority Queues.

The Queue ADT. The Radix Sort. Implementing the Miniqueue Class. Case Study: Time-Driven Simulation. Array Based Queue Implementation. Priority Queues.



9. Linked Lists.

Linked List Nodes. Building Linked Lists. Handling The Back of the List. Implementing a Linked Queue. Doubly Linked Lists. Updating A Doubly Linked List. The Josephus Problem. The Minilist Class. Selecting a Sequence Container.



10.Binary Trees.

Tree Structures. Binary Tree Nodes. Binary Tree Scan Algorithms. Using Tree Scan Algorithms. Binary Search Trees. Using Binary Search Trees. Implementing the Stree Class. The Stree Iterator (Optional).



11. Associative Containers.

Overview of Associative Containers. Sets. Maps. Multisets. Implementing Sets And Maps.



12. Advanced Associative Structures.

Hashing. Designing Hash Functions. Designing Hash Tables. The Hash Class. Hash Table Performance. 2-3-4 Trees. Red-Black Trees. The Rbtree Class.



13. Inheritance and Abstract Classes.

Inheritance in C++. The Graphics Hierarchy. The Graphics System. Safe Vectors. Ordered Lists. Polymorphism and Virtual Functions. Abstract Classes.



14. Heaps Binary Files and Bit Sets.

Array Based Binary Trees. Heaps. Implementing a Priority Queue. Binary Files. Bitsets. Case Study: Huffman Compression.



15. Recursive Algorithms.

Divide and Conquer Algorithms. Combinatorics. Dynamic Programming. Backtracking: The Eight-Queens Problem.



16. Graphs.

Graph Terminology. The Graph Class. Graph Class Design. Graph Traversal Algorithms. Graph Traversal Applications. Graph Minimization Algorithms.



Index.

Professor William Ford and Professor William Topp are faculty members with the Computer Science Department, University of the Pacific, Stockton, California. They have also written Introduction to Computing with C++ and Object Technology (Prentice Hall, 1999) and Assembly Language and Systems Programming for the M68000 Family (Jones and Bartlett, 1992).

Need help? Get in touch

Video
Play
Privacy and cookies
By watching, you agree Pearson can share your viewership data for marketing and analytics for one year, revocable upon changing cookie preferences. Disabling cookies may affect video functionality. More info...

Pearson eTextbook: What’s on the inside just might surprise you

They say you can’t judge a book by its cover. It’s the same with your students. Meet each one right where they are with an engaging, interactive, personalized learning experience that goes beyond the textbook to fit any schedule, any budget, and any lifestyle.Â