For courses in Java - Data Structures/CS2. This innovative new text encourages students to utilize the "Outside-In" approach to learning the use, design and implementation of data structures. The author introduces every data structure by first narrating its properties and use in applications (the "outside" view) - enabling instructors to introduce a data structure in a realistic context where it is used. He then teaches how to build data structures (the "inside" view); students learn how to evaluate usability, flexibility, extensibility, and performance in designing and implementing classic data structures. * The properties of a data structure are formalized by defining its Java public interface:- The interface of a data structure specifies its usability and flexibility, which play a big role in choosing between candidate data structures that may be suitable for use in an application. * A "price tag" associated with every data structure at the "outside" level:- Performance is the other primary factor (along with usability/flexibility) that determines whether or not a data structure will be chosen for use in an application; the price tag details performance. * Mathematical analysis integrated at a level that is appropriate and relevant to construct the price tags:- Students understand how to analyze and construct price tags for structures they build, and the cost of using them in applications. * Complete Java code listed and discussed for many applications and all data structures discussed that are not part of the Java APIs.- Students learn how Java can be used to use and implement data structures in a rigorous and complete way * Numerous examples worked throughout the text * Consistent pedagogy in every chapter, including:- A set of learning objectives at the start of each chapter- Unique boxed key points - End-of-chapter summary points- End-of-chapter analytical and design exercises- End-of-chapter programming * Public interfaces for Java classes - Presented as a stand-alone, one-page figure in a special format. * Unique price tag of public operations for every structure - Presented in tabular format for quick reference. * Complete Java code for applications and structures - Presented in a special format with line numbers. * Algorithms throughout the book written in pseudo-code and stylized with appropriate notation to distinguish from Java code.