For the second or third programming course.
A practical and unique approach to data structures that separates interface from implementation.
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 structures before the hash table is implemented.