Written by the accomplished Dale Team who are known for their student-friendly format and exciting and informative content.
Abstract data types (ADTs) provide the key foundation for the presentation of the classic data structures.
Starting early, and continuing throughout the text, the proper use of many Java features such as classes, objects, packages, interfaces, library classes, inheritance, and exceptions are presented.
In Chapter 2 we introduce a simple yet interesting ADT (a StringLog). Our development of this ADT, including both array-based and reference-based implementations, acts as a gentle introduction to the approaches used for the more complicated ADTs throughout the rest of the text.
End-of-chapter case studies are designed not only to reinforce the textbook material about data structures but also to provide examples of basic object-oriented problem solving techniques that lead to modular solutions to interesting problems.
A wealth of chapter exercises are provided through the text! Most chapters have 40 or more exercises organized by chapter section for easy management. Exercises that assess the students' comprehension of textbook material are supplemented with more difficult problems to challenge students.
Universal Modeling Language (UML) class diagrams are used throughout the text to help students model and visualize the Java classes and their inter-relationships.
Several of the new features of Java 5.0, including autoboxing and the Scanner class, are used to simplify the problem solutions.
So that students can concentrate on the primary topic of data structures, we use the simplest I/O approach we can, namely console I/O. However, to support those instructors and students who prefer to work with graphical user interfaces (GUIs) we provide GUIs for many of our case studies.
Two new appendices, one devoted to Java 5.0's new generics and the other providing Application Programmer Interfaces (APIs) for the Java library classes used throughout the text, are provided.
In addition to exhibiting sound program design and showing interesting uses of data structures, many of the program examples expose the students to important ancillary computer science topics, such as parsing, postfix notation, image analysis, simulation and modeling, large integer processing, and serialization.