About the structure Package

I developed the Java structure package two years ago in an attempt to provide a stable foundation for studying data structures in CS2. In the process of writing the software, the book Java Structures was written. Today, the result is software class tested over four semesters at a number of institutions. In addition, a number of students have used the package for supporting development of applications and applets for their own use.

The package contains approximately 80 fully and consistently developed classes supporting the full range of data structures studied in a modern CS2 course. The package makes reasonable use of inheritance and interface design. None of the structures have been declared final, making it possible for students and faculty to extend on the stable platform of structures. Since none of the structures makes significant use of rapidly moving packages at Sun (including the AWT), it is unlikely that significant changes in the design of the Java environment will have lasting impact on the design of the structures package itself. In particular, many of the design decisions made in the structures package have been paralleled in the Java environment.

The code is annotated with pre- and post-conditions that help the user understand the conditions required before the method may be expected to work, and the conditions that are likely to be achieved when the method is executed. Using Sun's javadoc, the code is fully documented, but the (ugly and distracting) javadoc commentary has been removed from sources to focus attention on the (same) comments incorporated into each method. All the software, including updates can be found on the web (see


Most importantly, my wish is that the structures package be a contribution to the educational community. As a result, while McGraw-Hill holds a copyright on the software, they have agreed free distribution of the software. Generally, you make make whatever educational use of the software you wish, as long as you don't directly make any money (see our agreement).

I hope you enjoy this package. I encourage, of course, your comments on the package and details of how you have found it useful (or not...).