CHAPTER 1 The Phases of Software Development 1.1 Specification,Design,Implementation 1.2 Running Time Analysis 1.3 Testing and Debugging CHAPTER 2 Java Classes and Information Hiding 2.1 Classes and Their Members 2.2 Using a Class 2.3 Packages 2.4 Parameters,Equals Methods,and Clones CHAPTER 3 Collection Classes 3.1 A Review of Java Arrays 3.2 An ADT for a Bag of Integers 3.3 Programming Project:The Sequence ADT 3.4 Programming Project:The Polynomial CHAPTER 4 Linked Lists 4.1 Fundamentals of Linked Lists 4.2 Methods for Manipulating Nodes 4.3 Manipulating and Entire Linked List 4.4 The Bag ADT with a Linked List 4.5 Programming Project:The Sequence ADT with a Linked List 4.6 Beyond Simple Linked Lists CHAPTER 5 Generic Programming 5.1 Java's Object Type 5.2 Object Methods and Generic Methods 5.3 Generic Classes 5.4 Generic Nodes 5.5 Interfaces and Iterators 5.6 A Generic Bag Class That Implements the Interface 5.7 Introduction to the Java Colletion and Map Interfaces CHAPTER 6 Stacks 6.1 Introduction to Stacks 6.2 Stack Applications 6.3 Implementations of the Stack ADT 6.4 More Complex Stack Applications CHAPTER 7 Queues 7.1 Introduction to Queues 7.2 Queues Applications 7.3 Implementations of the Queue ADT 7.4 Priority Queues CHAPTER 8 Recursive Thinking 8.1 Recursive Methods 8.2 Studies of Recursion 8.3 Reasoning about Recursion CHAPTER 9 Trees 9.1 Introduction to Trees 9.2 Tree Representations 9.3 A Class for Binary Tree Nodes 9.4 Tree Traversals 9.5 Binary Search Trees CHAPTER 10 Projects 10.1 Heaps 10.2 B-Trees 10.3 Java Support for Trees 10.4 Trees,Logs,and Time Analysis CHAPTER 11 Searching 11.1 Serial Search and Binary Search 11.2 Open-Address Hashing 11.3 Using Java's Hashtable Class 11.4 Chained Hashing 11.5 Time Analysis of Hashing CHAPTER 12 Sorting 12.1 Quadratic Sorting Algorithms 12.2 Recursive Sorting Algorithms 12.3 An O Algorithm Using a Heap CHAPTER 13 Software Reuse with Extended Classes 13.1 Extended Classes 13.2 Generic Type Parameters and Inheritance 13.3 Simulation of an Ecosystem 13.4 Abstract Classes and a Game Class CHAPTER 14 Graphs 14.1 Graph Definitions 14.2 Graph Implementations 14.3 Graph Traversals 14.4 Path Algorithms APPENDIXES INDEX