<HTML>
<HEAD>
<TITLE>Contents</TITLE>
</HEAD>
<BODY bgcolor="#FFFFFF">
<img src="cover75.gif" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/icons/cover75.gif" alt="Cover" align=right>
<b>Data Structures and Algorithms
with Object-Oriented Design Patterns in Java</b><br>
<A NAME="tex2html1348" HREF="page10.html" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page10.html"><IMG WIDTH=37 HEIGHT=24 ALIGN=BOTTOM ALT="next" SRC="next_motif.gif" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/icons/next_motif.gif"></A> <A NAME="tex2html1346" HREF="book.html" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/book.html"><IMG WIDTH=26 HEIGHT=24 ALIGN=BOTTOM ALT="up" SRC="up_motif.gif" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/icons/up_motif.gif"></A> <A NAME="tex2html1340" HREF="page8.html" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page8.html"><IMG WIDTH=63 HEIGHT=24 ALIGN=BOTTOM ALT="previous" SRC="previous_motif.gif" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/icons/previous_motif.gif"></A> <A NAME="tex2html1350" HREF="page618.html" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page618.html"><IMG WIDTH=43 HEIGHT=24 ALIGN=BOTTOM ALT="index" SRC="index_motif.gif" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/icons/index_motif.gif"></A> <BR><HR>
<P><H2><A NAME="SECTION001000000000000000000">Contents</A></H2>
<UL>
<LI> <A NAME="tex2html1351" HREF="page1.html#SECTION000100000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page1.html#SECTION000100000000000000000">Colophon</A>
<LI> <A NAME="tex2html1352" HREF="page2.html#SECTION000200000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page2.html#SECTION000200000000000000000">Dedication</A>
<LI> <A NAME="tex2html1353" HREF="page3.html#SECTION000300000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page3.html#SECTION000300000000000000000">Preface</A>
<UL>
<LI> <A NAME="tex2html1354" HREF="page4.html#SECTION000310000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page4.html#SECTION000310000000000000000">Goals</A>
<LI> <A NAME="tex2html1355" HREF="page5.html#SECTION000320000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page5.html#SECTION000320000000000000000">Approach</A>
<LI> <A NAME="tex2html1356" HREF="page6.html#SECTION000330000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page6.html#SECTION000330000000000000000">Outline</A>
<LI> <A NAME="tex2html1357" HREF="page7.html#SECTION000340000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page7.html#SECTION000340000000000000000">Suggested Course Outline</A>
<LI> <A NAME="tex2html1358" HREF="page8.html#SECTION000350000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page8.html#SECTION000350000000000000000">Online Course Materials</A>
</UL>
<LI> <A NAME="tex2html1359" HREF="page10.html#SECTION002000000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page10.html#SECTION002000000000000000000">Introduction</A>
<UL>
<LI> <A NAME="tex2html1360" HREF="page11.html#SECTION002100000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page11.html#SECTION002100000000000000000">What This Book Is About</A>
<LI> <A NAME="tex2html1361" HREF="page12.html#SECTION002200000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page12.html#SECTION002200000000000000000">Object-Oriented Design</A>
<UL>
<LI> <A NAME="tex2html1362" HREF="page13.html#SECTION002201000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page13.html#SECTION002201000000000000000">Abstraction</A>
<LI> <A NAME="tex2html1363" HREF="page14.html#SECTION002202000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page14.html#SECTION002202000000000000000">Encapsulation</A>
</UL>
<LI> <A NAME="tex2html1364" HREF="page15.html#SECTION002300000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page15.html#SECTION002300000000000000000">Object Hierarchies and Design Patterns</A>
<UL>
<LI> <A NAME="tex2html1365" HREF="page16.html#SECTION002301000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page16.html#SECTION002301000000000000000">Containers</A>
<LI> <A NAME="tex2html1366" HREF="page17.html#SECTION002302000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page17.html#SECTION002302000000000000000">Enumerations</A>
<LI> <A NAME="tex2html1367" HREF="page18.html#SECTION002303000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page18.html#SECTION002303000000000000000">Visitors</A>
<LI> <A NAME="tex2html1368" HREF="page19.html#SECTION002304000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page19.html#SECTION002304000000000000000">Cursors</A>
<LI> <A NAME="tex2html1369" HREF="page20.html#SECTION002305000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page20.html#SECTION002305000000000000000">Adapters</A>
<LI> <A NAME="tex2html1370" HREF="page21.html#SECTION002306000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page21.html#SECTION002306000000000000000">Singletons</A>
</UL>
<LI> <A NAME="tex2html1371" HREF="page22.html#SECTION002400000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page22.html#SECTION002400000000000000000">The Features of Java You Need to Know</A>
<UL>
<LI> <A NAME="tex2html1372" HREF="page23.html#SECTION002401000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page23.html#SECTION002401000000000000000">Variables</A>
<LI> <A NAME="tex2html1373" HREF="page24.html#SECTION002402000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page24.html#SECTION002402000000000000000">Primitive Types and Reference Types</A>
<LI> <A NAME="tex2html1374" HREF="page25.html#SECTION002403000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page25.html#SECTION002403000000000000000">Parameter Passing</A>
<LI> <A NAME="tex2html1375" HREF="page26.html#SECTION002404000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page26.html#SECTION002404000000000000000">Classes and Objects</A>
<LI> <A NAME="tex2html1376" HREF="page27.html#SECTION002405000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page27.html#SECTION002405000000000000000">Inheritance</A>
<LI> <A NAME="tex2html1377" HREF="page28.html#SECTION002406000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page28.html#SECTION002406000000000000000">Interfaces and Polymorphism</A>
<LI> <A NAME="tex2html1378" HREF="page29.html#SECTION002407000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page29.html#SECTION002407000000000000000">Other Features</A>
</UL>
<LI> <A NAME="tex2html1379" HREF="page30.html#SECTION002500000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page30.html#SECTION002500000000000000000">How This Book Is Organized</A>
<UL>
<LI> <A NAME="tex2html1380" HREF="page31.html#SECTION002501000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page31.html#SECTION002501000000000000000">Models and Asymptotic Analysis</A>
<LI> <A NAME="tex2html1381" HREF="page32.html#SECTION002502000000000000000" tppabs="http://dictator.uwaterloo.ca/Bruno.Preiss/books/opus5/html/page32.html#SECTION002502000000000000000">Foundational Data Structures</A>