Skip to main content

Data Structures and Algorithms with Object-Oriented Design Patterns in Java



Data Structures and Algorithms with Object-Oriented Design Patterns in Java

Bruno R. Preiss

ISBN: 978-0-471-34613-5 August 1999 656 Pages


Author Bruno Preiss presents the fundamentals of data structures and algorithms from a modern, object-oriented perspective. The text promotes object-oriented design using Java and illustrates the use of the latest object-oriented design patterns. Virtually all the data structures are discussed in the context of a single class hierarchy. This frame work clearly shows the relationships between data structures and illustrates how polymophism 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.

Garbage Collection.

Algorithmic Patterns and Problem Solvers.

Sorting Algorithms and Sorters.

Graphs and Graph Algorithms.



  • Use of object-oriented design patterns. By making explicit the patterns in object-oriented systems, it presents the student with how a good design fits together and how a good design transcends the problem at hand. In turn, the use of design patterns provides the instructor with the "vocabulary" and "framework" that tie together virtually all of the topics in the text. It gives instructors a tool for teaching design.
  • Unified framework. All data structures are presented using a common framework which consists of a hierarchy of Java interfaces and a related hierarchy of abstract and concrete classes that implement the various interfaces. The unified framework clearly shows students the relationships between the various data structures and provides the instructor the framework for showing explicitly the relationship between the data structures and how they are implemented.
  • Just-In-Time mathematics analysis techniques. Students are presented mathematical concepts in a relevant context. By teaching mathematics in the appropriate context, it is easier for the instructor to motivate the student and provide "natural" examples for the mathematical ideas.
  • A single Java software design is used throughout. Using a common and consistent design, students are able to understand more quickly the operation of complicated data structures.