The chapters for this course are organized to provide a pedagogical path that starts with the basics of Java programming and object-oriented design, moves to concrete structures like arrays and linked lists, adds foundational techniques like recursion and algorithm analysis, and then presents the fundamental data structures and algorithms, concluding with a discussion of memory management (that is, the architectural underpinnings of data structures). Specifically, the chapters for this book are organized as follows:
1. Java Programming Basics
2. Object-Oriented Design
3. Arrays, Linked Lists, and Recursion
4. Analysis Tools
5. Stacks and Queues
6. Lists and Iterators
8. Priority Queues
9. Maps and Dictionaries
10. Search Trees
11. Sorting, Sets, and Selection
12. Text Processing
For the Student
for all readers, and specifically for students, we include:
• All the Java source code presented in this book.
• The student version of the net.datastructures package.
• Slide handouts (four-per-page) in PDF format.
• A database of hints to all exercises, indexed by problem number.
• Java animations and interactive applets for data structures and algorithms.
• Hyperlinks to other data structures and algorithms resources.
We feel that the Java animations and interactive applets should be of particular interest, since they allow readers to interactively "play" with different data structures, which leads to better understanding of the different ADTs. In addition, the hints should be of considerable use to anyone needing a little help getting started on certain exercises.