本书着重阐述数据结构的基础知识及其Java语言实现。学生通过对书中编程项目和实验的实践和训练,可加深对基本概念和方法的理解和掌握,并可直接了解实际当中的应用。\r\n 本书的主要特点包括:全面涵盖了数据结构与Java类集框架的内容,尤其介绍了重要数据结构的实现,如表、树和Hash表等;运用简单的图形用户接口作为输入/输出,以使学生能更好地理解在实际当中普遍应用的事件驱动程序设计方法;本书含有大量的例题和练习、应用案例和实例,以加强学生的实际训练。
Preface\r\n\r\nCHAPTER 1 Important Features of Java\r\n\r\nChapter Objectives\r\n1.1 Classes\r\nSummary\r\nExercises\r\nProgramming Project 1.1:Developing and Using a Sequence Class\r\n\r\nCHAPTER 2 Interfaces and Collection Classes\r\n\r\nChapter Object\r\n2.1 Abstract Methods and Abstract Classes\r\n2.2 Interfaces\r\n2.3 Arrays\r\n2.4 Collection Classes\r\n2.5 Storage Structures for Collection Classes\r\nSummary\r\nExercises\r\nProgramming Project 2.1:Expanding the LinkedCollection Class\r\n\r\nCHAPTER 3 Introduction to Software Engineering\r\n\r\nChapter Objectives\r\n3.1 The Software Development Life Cycle\r\n3.2 Problem Analysis\r\n3.3 Program Design\r\n3.4 Program Implementation\r\n3.5 Program Maintenance\r\nSummary\r\nExercises\r\nProgramming Project 3.1:Further Expansion of the LinkedCollection Class\r\n\r\nCHAPTER 4 Recursion\r\n\r\nChapter Objectives\r\n4.1 Introduction\r\n4.2 Factorials\r\n4.3 Decimal to Binary\r\n4.4 Towers of Hanoi\r\n4.5 Backtracking\r\n4.6 Binary Search\r\n4.7 Indirect Recursion\r\n4.8 The Cost of Recursion\r\nSummary\r\nExercises\r\nProgramming Project 4.1:Iterative Version of Towers of Hanoi\r\nProgramming Project 4.2:Eight Queens\r\nProgramming Project 4.3:A Knight's Tour\r\n\r\nCHAPTER 5 Array Lists\r\n\r\nChapter Objectives\r\n5.1 The List Interface\r\n5.2 The ArrayList Class\r\n5.3 The ArrayList Implementation\r\n5.4 Application:High-Precision Arithmetic\r\n5.5 The Vector Class\r\nSummary\r\nExercises\r\nProgramming Project 5.1:Extending the VeryLongInt Class\r\nProgramming Project 5.2:The Deque Class\r\n\r\nCHAPTER 6 Linked Lists\r\n\r\nChapter Objectives\r\n6.1 The LinkedList Class\r\n6.2 Application:A Line Editor\r\nSummary\r\nExercises\r\nProgramming Project 6.1:Extending the Line Editor\r\nProgramming Project 6.2:alternative Design and Implementation of the LinkedList Class\r\n\r\nCHAPTER 7 Queues and Stacks\r\n\r\nChapter Objectives\r\n7.1 Queues\r\n7.2 Computer Simulation\r\n7.3 Application:A Simulated Car Wash\r\n7.4 Stacks\r\n7.5 Application:How Compilers Implement Recursion\r\n7.6 Application:Converting From Infix to Postfix\r\nSummary\r\nExercises\r\nProgramming Project 7.1:Extending Speedo's Car Wash\r\nProgramming Project 7.2:Run-Time Evaluation of a Condition\r\nProgramming Project 7.3:An Iterative Version of Maze-Search\r\n\r\nCHAPTER 8 Binary Trees and Binary Search Trees\r\n\r\nChapter Objectvies\r\n8.1 Definition and Properties of Binary Trees\r\n8.2 Binary Search Trees\r\nSummary\r\nExercises\r\nProgramming Project 8.1:An Alternative Design and Implementation of the Binary-Search_Tree Data Structure\r\n\r\nCHAPTER 9 Balanced Binary Search Trees\r\n\r\nChapter Ojbectives\r\n9.1 A Problem with Binary Search Trees\r\n9.2 Rotations\r\n9.3 AVL Trees\r\n9.4 Red-Black Trees\r\nSummary\r\nExercises\r\nProgramming Project 9.1:Defining the remove Method in the AVLTree Class\r\n\r\nCHAPTER 10 Tree Maps and Tree Sets\r\n\r\nChapter Objectives\r\n10.1 The TreeMap Class\r\n10.2 Application:TreeMap Objects:A Simple Thesaurus\r\n10.3 The TreeSet Class\r\n10.4 Application:A Simple Spell-Checker\r\nSummary\r\nExercises\r\nProgramming Project 10.1:Enhancing the SpelChecker Project\r\nProgramming Project 10.2:Determining Word Frequencies\r\nProgramming Project 10.3:building a Concordance\r\n\r\nCHAPTER 11 Priority Queues\r\n\r\nChapter Ojbectives\r\n11.1 Introduction\r\n11.2 Definition of the PriorityQueue Interface\r\n11.3 Implementations of the PriorityQueue Interface\r\n11.4 Application:Huffman Codes\r\nSummary\r\nExercises\r\nProgramming Project 11.1:Decoding a Huffman-Encoded Message\r\n\r\nCHAPTER 12 Sorting\r\n\r\nChapter Objectives\r\n12.1 Introduction\r\n12.2 Insertion Sort\r\n12.3 How Fast Can We Sort?\r\n12.4 Fast Sorts\r\nSummary\r\nExercises\r\nProgramming Project 12.1:File Sorting\r\n\r\nCHAPTER 13 Searching and the Hash Classes\r\n\r\nChapter Objectives\r\n13.1 A Framework to Analyze Searching\r\n13.2 Review of Searching\r\n13.3 The HashMap Class\r\n13.4 The HashSet Class\r\n13.5 Open-Address Hashing\r\nSummary\r\nExercises\r\nProgramming Project 13.1:Comparing Chained Hashing and Open-Address Hashing\r\n\r\nCHAPTER 14 Graphs,Trees,and Networks\r\n\r\nChapter Objectives\r\n14.1 Undirected Graphs\r\n14.2 Directed Graphs\r\n14.3 Trees\r\n14.4 Networks\r\n14.5 Graph Algorithms\r\n14.6 Developing a Network Class\r\n14.7 Backtracking through a Network\r\nSummary\r\nExercises\r\nProgramming Project 14.1:Completing the Implementation of the Network Class under the Adjacency-Matrix Design\r\nProgramming Project 14.2:A Network Search\r\n\r\nAPPENDIX 1 Mathematical Background\r\n\r\nAPPENDIX 2 The GUI and GUIListener Classes\r\n\r\nAPPENDIX 3 The Java Collections Framework\r\n\r\nBibliography\r\n\r\nIndex