This Java data structures book provides a strong introduction to object-oriented programming. It features a comprehensive presentation of the fundamentals of algorithm analysis foralgorithm and data structure comparisons, along with basic software engineering principles for the object-oriented analysis and design of a large information system. It is the first data structures book to present an introduction to software design and development at an intermediate level. Key Features Data structure Lists, stacks, queues, trees, balanced trees, graphs, and files are discussed in detail and implemented in Java. Software analysis and modeling are presented using a subset of UML at a level accessible to second- or third-year students. Timing Timing is extensively studied and used throughout. Two case Real examples illustrate the object-oriented development process for the analysis and design of a non-trivial system. Electronic All of the code included in the text and an example of a well-designed data structure library with implementations of all the standard data structures is provided for downloading.