• Five-part structure using the “inverted pyramid” style – Covers object-oriented programming, linear structures, algorithms, trees and collections, and advanced topics, addressing critical concepts up front.
• New Java 1.5 features (generics, autoboxing, Scanner, enhanced for loop) – Keeps both instructor and student up-to-date.
• Extensive use of games as examples – Captures students’ interest and imagination with realistic challenges involving dice, cards, and boards.
• Numerous diagrams – Illustrate key concepts, provide an instant review, and serve as a landmark when reviewing the text.
• Practical approach to real-world programming – Allows readers to compile and run a program as quickly as possible, rather than focusing on abstract software engineering techniques.
• Frequent, early examples in each chapter – Let students to absorb abstract concepts in the context of concrete problems.
• Process of crafting programs –Works through the development of each project, often providing multiple versions of the code and considering alternate designs, to give students experience in the processof crafting programs rather than just the results.
• Use of Unified Modeling Language throughout – Introduces student to the industry standard for diagrams of classes and class relationships.
• Clear, concise presentation – Addresses one data structure at a time.
• Gradual development of classes analogous to the Java Collections Framework – Allows students to see how the data structure or algorithm works, then learn to use the built-in
• Complete, working code in text and online – Provides access to code even when students are not in front of a computer. Includes complete code for B-trees.
• Strong pedagogy – Features at least one extended example in almost every chapter, in addition to exercises at the end of every section and problems and projects at the end of every chapter.
• Introduces generic types (Chapter 4) – Allows a programmer to specify the element type of a collection, improving both program clarity and type safety.
• Solutions manual – Saves instructors valuable classroom preparation time.
KEY BENEFITS: This new book provides a concise and engaging introduction to Java and object-oriented programming with an abundance of original examples, use of Unified Modeling Language throughout, and coverage of the new Java 1.5. Addressing critical concepts up front, the book's five-part structure covers object-oriented programming, linear structures, algorithms, trees and collections, and advanced topics. KEY FEATURES: Data Structures and Algorithms in Java takes a practical approach to real-world programming and introduces readers to the process of crafting programs by working through the development of projects, often providing multiple versions of the code and consideration for alternate designs. The book features the extensive use of games as examples; a gradual development of classes analogous to the Java Collections Framework; complete, working code in the book and online; and strong pedagogy including extended examples in most chapters along with exercises, problems and projects. MARKET: For readers and professionals with a familiarity with the basic control structures of Java or C and a precalculus level of mathematics who want to expand their knowledge to Java data structures and algorithms. Ideal for a second undergraduate course in computer science.
Note: Each chapter concludes with a summary, vocabulary, problems, and projects.
Part I: Object-Oriented Programming
1 Encapsulation. Software Development. Classes and Objects. Using Objects.
2 Polymorphism. Reference Types. Arrays. Interfaces. Overloading.
3 Inheritance. Extending a Class. The Object Class. Packages and Access Levels.
Part II: Linear Structures
4 Stacks and Queues. The Stack Interface. The Call Stack. Exceptions. The Queue Interface.
5 Array-Based Structures. Shrinking and Stretching Arrays. Implementing Stacks and Queues. The List Interface. Iterators. The Java Collections Framework: A First Look.
6 Linked Structures. List Nodes. Stacks and Queues. The LinkedList Class. The Java Collections Framework Revisited
Part III: Algorithms
7 Analysis of Algorithms. Timing. Asymptotic Notation. Counting Steps. Best, Worst, and Average Case. Amortized Analysis.
8 Searching and Sorting. Linear Search. Binary Search. Insertion Sort. The Comparable Interface. Sorting Linked Lists.
9 Recursion. Thinking Recursively. Analyzing Recursive Algorithms. Merge Sort. Quicksort. Avoiding Recursion.
Part IV: Trees and Sets
10 Trees. Binary Trees. Tree Traversal. General Trees
11 Sets. The Set Interface. Ordered Lists. Binary Search Trees. Hash Tables. The Java Collections Framework Again.
Part V: Advanced Topics
12 Advanced Linear Structures. Bit Vectors. Sparse Arrays. Contiguous Representation of Multidimensional Arrays. Advanced Searching and Sorting
13 Strings. Strings and StringBuilders. String Matching.
14 Advanced Trees. Heaps. Disjoint Set Clusters. Digital Search Trees. Red-Black Trees.
15 Graphs. Terminology. Representation. Graph Traversal. Topological Sorting. Shortest Paths. Minimum Spanning Trees.
16 Memory Management. Explicit Memory Management. Automatic Memory Management.
17 Out to the Disk. Interacting With Files. Compression. External Sorting. B-Trees.
Review of Java
Unified Modeling Language