Preface CHAPTER 1 Important Features of Java Chapter Objectives 1.1 Classes Summary Exercises Programming Project 1.1:Developing and Using a Sequence Class CHAPTER 2 Interfaces and Collection Classes Chapter Object 2.1 Abstract Methods and Abstract Classes 2.2 Interfaces 2.3 Arrays 2.4 Collection Classes 2.5 Storage Structures for Collection Classes Summary Exercises Programming Project 2.1:Expanding the LinkedCollection Class CHAPTER 3 Introduction to Software Engineering Chapter Objectives 3.1 The Software Development Life Cycle 3.2 Problem Analysis 3.3 Program Design 3.4 Program Implementation 3.5 Program Maintenance Summary Exercises Programming Project 3.1:Further Expansion of the LinkedCollection Class CHAPTER 4 Recursion Chapter Objectives 4.1 Introduction 4.2 Factorials 4.3 Decimal to Binary 4.4 Towers of Hanoi 4.5 Backtracking 4.6 Binary Search 4.7 Indirect Recursion 4.8 The Cost of Recursion Summary Exercises Programming Project 4.1:Iterative Version of Towers of Hanoi Programming Project 4.2:Eight Queens Programming Project 4.3:A Knight's Tour CHAPTER 5 Array Lists Chapter Objectives 5.1 The List Interface 5.2 The ArrayList Class 5.3 The ArrayList Implementation 5.4 Application:High-Precision Arithmetic 5.5 The Vector Class Summary Exercises Programming Project 5.1:Extending the VeryLongInt Class Programming Project 5.2:The Deque Class CHAPTER 6 Linked Lists Chapter Objectives 6.1 The LinkedList Class 6.2 Application:A Line Editor Summary Exercises Programming Project 6.1:Extending the Line Editor Programming Project 6.2:alternative Design and Implementation of the LinkedList Class CHAPTER 7 Queues and Stacks CHAPTER 8 Binary Trees and Binary Search Trees CHAPTER 9 Balanced Binary Search Trees CHAPTER 10 Tree Maps and Tree Sets CHAPTER 11 Priority Queues CHAPTER 12 Sorting CHAPTER 13 Searching and the Hash Classes CHAPTER 14 Graphs,Trees,and Networks APPENDIX 1 Mathematical Background APPENDIX 2 The GUI and GUIListener Classes APPENDIX 3 The Java Collections Framework Bibliography Index