From the Back Cover
This book provides a practical introduction to data structures with an emphasis on abstract thinking and problem solving, as well as the use of Java. It does this through what remains a unique approach that clearly separates each data structure's interface (how to use a data structure) from its implementation (how to actually program that structure). Parts I (Tour of Java), II (Algorithms and Building Blocks), and III (Applications) lay the groundwork by discussing basic concepts and tools and providing some practical examples, while Part IV (Implementations) focuses on implementation of data structures. This forces the reader to think about the functionality of the data structuresbeforethe hash table is implemented.
Primitive Java; Reference Types; Objects and Classes; Inheritance; Algorithm Analysis; The Collections API; Recursion; Sorting Algorithms; Randomization; Applications-Games, Stacks and Compilers, Utilities, Simulation, Graphs and Paths; Inner Classes and Implementation of ArrayList Stacks and Queues; Linked Lists; Trees; Binary Search Trees; Hash Tables; A Priority Queue: The Binary Heap; Advanced Data Structures-Splay Trees, Merging Priority Queues, The Disjoint Set Class
A useful guide for Java programmers that includes lots of sample code and basic theory.