Data Structures and Algorithms
with Object-Oriented Design Patterns in C++
This text may be used in either a one semester or a two semester course.
The course which I teach at Waterloo is a one-semester course that
comprises 36 lecture hours on the following topics:
-
Review of the fundamentals of programming in C++ and
an overview of object-oriented programming with C++.
(Appendix ). [4 lecture hours].
-
Models of the computer, algorithm analysis and asymptotic notation
(Chapters and ). [4 lecture hours].
-
Foundational data structures, abstraction and abstract data types
(Chapters and ). [4 lecture hours].
-
Stacks, queues, ordered lists and sorted lists
(Chapters and ). [3 lecture hours].
-
Hashing, hash tables and scatter tables
(Chapter ). [3 lecture hours].
-
Trees and search trees
(Chapters and ). [6 lecture hours].
-
Heaps and priority queues
(Chapter ). [3 lecture hours].
-
Algorithm design techniques
(Chapter ). [3 lecture hours].
-
Sorting algorithms and sorters
(Chapter ). [3 lecture hours].
-
Graphs and graph algorithms
(Chapter ). [3 lecture hours].
Depending on the background of students,
a course instructor may find it necessary to review
features of the C++ language.
For example, an understanding of templates is required
for the foundational data structures discussed in Chapter .
Similarly, students need to understand the workings of classes
and inheritance in order to understand
the unifying class hierarchy discussed in Chapter .
Copyright © 1997 by Bruno R. Preiss, P.Eng. All rights reserved.