Java Structures: Data Structures in Java for the Principled Programmer, 2/e

Duane A. Bailey


The second edition of Duane Baileys Java Structures considers the design, implementation, and use of data structures using Java 2. The structure package, a collection of nearly 100 different classes implementing a wide variety of data structures, has been the basis of
Java Structures for more than five years. Thousands of faculty, students, researchers, industrial and recreational programmers have investigated this lean and well tested approach to data structure design.

In this edition, the text develops a heavily tested package that is independent of but consistent with the Collection package offered by Sun. In many cases, the variety of implementations provides the programmer choices of data structure that are not available with the Collection system. For those curricula that make
use of the Collection package, the structure package can be easily integrated into existing applications. All classes are fully documented and make consistent use of pre- and post-conditioning, and include support for assertion testing.

The second edition also brings a wealth of new resources, including a large number of new and original exercises and drill problems. Throughout the text, exercises appear in the running text to direct a
deeper consideration of subtle issues by students. Perhaps the most innovative feature (first found in Baileys Java Elements) is the inclusion of more than a dozen original lab exercises that focus on interesting and often classic problems of computer science.

All code for the books examples, documentation, and the STRUCTURE package is posted on the books website at


   1 The Object-Oriented Method
   2 Comments, Conditions, and Assertions
   3 Vectors
   4 Design Fundamentals
   5 Sorting
   6 A Design Method
   7 Iterators
   8 Lists
   9 Linear Structures
   10 Ordered Structures
   11 Binary Trees
   12 Priority Queues
   13 Search Trees
   14 Maps
   15 Graphs
    Appendix A Answers
    Appendix B Beginning with Java
    Appendix C Collections
    Appendix D Documentation
    Appendix E Environments
    Appendix F Further Reading
    Appendix G Glossary