Data Structures and Other Objects Using C++

Michael Main / Walter Savitch  
Total pages
February 2010
Related Titles

Product detail

Product Price CHF Available  
Data Structures and Other Objects Using C++
209.60 approx. 7-9 days


Data Structures and Other Objects Using C++ takes a gentle approach to the data structures course in C++. Providing an early, self-contained review of object-oriented programming and C++, this text gives students a firm grasp of key concepts and allows those experienced in another language to adjust easily. Flexible by design, professors have the option of emphasizing object-oriented programming, covering recursion and sorting early, or accelerating the pace of the course. Finally, a solid foundation in building and using abstract data types is also provided, along with an assortment of advanced topics such as B-trees for project building and graphs.


  • Provides interfaces for the principal example classes, which are compliant with the ANSI/ISO C++ Standard Library classes.
  • Thorough coverage of the role of the const keyword in the C++ Standard Library.
  • Covers C++ features such as namespaces, static member constants, typename keyword, and inheritance.
  • Thorough review of C++ syntax and OOP concepts in each chapter makes this book accessible for students at various levels.


  • Source Code
  • Powerpoints
  • Solutions
  • CourseSmart eTextBook


New to this Edition

The C++ Standard Template Library (STL) plays a larger role in the curriculum than past editions, and the authors have added selected new material to support this. It’s important that students understand both how to use the STL classes in an application program and the possible approaches to implementing these (or similar) classes. With this in mind, the primary changes that you’ll find for this edition are:

  • A new Section 2.6 that gives an early introduction to the Standard Template Library using the pair class. The authors have been able to introduce students to the STL here even before they have a full understanding of templates.
  • An earlier introduction of the multiset class and STL iterators in Section 3.4. This is a good location for the material because the students have just seen how to implement their first collection class (the bag), which is based on the multiset.
  • The authors continue to introduce the STL string class in Section 4.5, where it’s appropriate for the students to implement their own string class with a dynamic array.
  • A new Section 5.6 that compares three similar STL classes: the vector, the list, and the deque. At this point, the students have enough knowledge to understand typical vector and list implementations.
  • A first introduction to the STL algorithms appears in Section 6.3, and this is now expanded on in Sections 11.2 (the heap algorithms) and 13.4 (expanded coverage of sorting and binary search in the STL).
  • A new Section 8.4 provides typical implementation details for the STL deque class using an interesting combination of dynamic arrays and pointers.
  • A discussion of hash tables in the proposed TR1 expansions for the STL is now given in Section 12.6.

Most chapters also include new programming projects, and you may also keep an eye on the project web site,, for new projects as the authors develop them.

Table of Contents

CHAPTER 1 The Phases of Software Development
CHAPTER 2 Abstract Data Types and C++ Classes
CHAPTER 3 Container Classes
CHAPTER 4 Pointers and Dynamicarrys
CHAPTER 5 Linked Lists
CHAPTER 6 Software Development with Templates, Iterators, and the STL
CHAPTER 7 Stacks
CHAPTER 8 Queues
CHAPTER 9 Recursive Thinking
CHAPTER 10 Trees
CHAPTER 11 Balanced Trees
CHAPTER 12 Searching
CHAPTER 13 Sorting
CHAPTER 14 Derived Classes and Inheritance
CHAPTER 15 Graphs

Back Cover

Save money. Lighten your backpack. Access your textbooks anytime, from anywhere.

This title is available as an eTextbook from CourseSmart. Purchase your assigned textbook as a CourseSmart eTextbook, and stop lugging books around campus! You can also access CourseSmart eTextbooks from your iPhone.

Instructors, request your exam copies online and get instant access. Learn more at


Michael Main is an Associate Professor of Computer Science at the University of Colorado at Boulder. He earned his BS, MS, and PhD at Washington State University.

Walter Savitch is Professor Emeritus of Computer Science at the University of California at San Diego. His interests include complexity theory, formal language theory, computational linguistics, and the development of computer science education materials, including several leading textbooks. He holds a PhD in mathematics from the University of California at Berkeley.