Skip to main content

Data Structures and Algorithms with Object-Oriented Design Patterns in C++

Data Structures and Algorithms with Object-Oriented Design Patterns in C++

Bruno R. Preiss

ISBN: 978-0-471-24134-8 September 1998 688 Pages


In Stock



Students will learn data structures and algorithms from a modern, object-oriented perspective with this new text. It uses a single class hierarchy as a framework to present all of the data structures. This framework clearly shows the relationships between data structures and illustrates how polymorphism and inheritance can be used effectively.

Related Resources

Algorithm Analysis.

Asymptotic Notation.

Foundational Data Structures.

Data Types and Abstraction.

Stacks, Queues and Deques.

Ordered Lists and Sorted Lists.

Hashing, Hash Tables and Scatter Tables.


Search Trees.

Heaps and Priority Queues.

Sets, Multisets and Partitions.

Dynamic Storage Allocation.

Algorithmic Patterns and Problem Solvers.

Sorting Algorithms and Sorters.

Graphs and Graph Algorithms.


  • All data structures are presented using a common framework. The unified class hierarchy gives the instructor the framework for showing explicitly the relationship between the data structures and how they are implemented.
  • Use of object-oriented design patterns. Students learn how a good design fits together and how a good design transcends the problem at hand. The use of design patterns gives the instructor the framework that ties together virtually all of the topics in the book and offers the instructor a tool for teaching design.
  • A single C++ software design is used throughout the text. By using a common and consistent design, students are able to understand more quickly the operation of complicated data structures.
  • Just-in-time presentation of mathematical analysis techniques. Students are exposed to mathematical concepts as needed. By teaching the mathematics in the appropriate context, it is easier for the instructor to motivate the students and provide natural examples for mathematical ideas.