It has long been acknowledged as being essential to include the design and analysis of effective data structures in the computer science curriculum. The approach taken by Goodrich and Tomassia to this well-known subject is based on the object-oriented paradigm as the preferred framework for creating data structures. The authors offer a corresponding Java interface for each ADT they discuss in the text. Java classes that implement the interfaces are provided as concrete data structures that realize the ADTs. This book's basic data structure implementations are all contained in the Java package net.datastructures. In addition to the Java Collections Framework, this package creates a cohesive library of data structures and algorithms in Java that are specifically created for teaching purposes.