Java Software Structures: Designing and Using Data Structures, 2/e (Paperback)
暫譯: Java 軟體結構:設計與使用資料結構(第二版)

John Lewis, Joseph Chase

買這商品的人也買了...

相關主題

商品描述

Description:

The second edition of Java Software Structures embraces the enhancements of Java 5.0, where all structures and collections are based on generics. The framework of the text walks the reader through three main areas: conceptualization, explanation, and implementation, allowing for a consistent and coherent introduction to data structures. The addition of integrated case studies provides complete examples to aid readers starting with the problem statement, to design rationale, through full implementation. Readers will learn how to develop high-quality software systems using well-designed collections and algorithms.

 

 

Table of Contents:

1. Software Development.

Software Engineering.

Software Quality.

Development Life Cycle Models.

The Unified Modeling Language (UML).

Error Handling.

Analysis of Algorithms.

Software Engineering and Data Structures.

 

2.   Object-Oriented Design.

Overview of Object-Orientation

Using Objects

Class Libraries and Packages

State and Behavior

Classes

Encapsulation

Constructors

Method Overloading

References Revisited

The static Modifier

Wrapper Classes

Interfaces

Inheritance

Class Hierarchies

Polymorphism

Generic Types

Exceptions

3. Collections.

Introduction to Collections.

A Set Collection

Using a Set: Bingo.

Implementing a Set: with Arrays.

The ArraySet   Class

Analysis of ArraySet .

 

4. Linked Structures.

References as Links.

Managing Linked Lists.

Elements without Links.

Implementing a Set: with Links.

Analysis of LinkedSet .

 

5. Black Jack Game.

Initial Design

Implementing a Black Jack Game

 

6. Stacks.

A Stack ADT.

Using Stacks: Evaluating Postfix Expressions.

Using Stacks: Traversing a Maze.

Implementing Stacks: with Links.

Implementing Stacks: with Arrays.

Implementing Stacks: the java.util.Stack Class.

Analysis of Stack Implementations.

 

7. Queues.

A Queue ADT.

Using Queues: Code Keys.

Using Queues: Ticket Counter Simulation.

Using Queues: Radix Sort.

Implementing Queues: with Links.

Implementing Queues: with Arrays.

Implementing Queues: with Circular Arrays.

Analysis of Queue Implementations.

 

8. Lists.

A List ADT.

Using Ordered Lists: Tournament Maker.

Using Indexed Lists: The Josephus Problem.

Implementing Lists: with Arrays.

Implementing Lists: with Links.

Analysis of List Implementations.

 

9. Calculator.

Initial Design

Implementing a Calculator

 

10. Recursion.

Recursive Thinking.

Recursive Programming.

Using Recursion.

Analyzing Recursive Algorithms.

 

11. Sorting and Searching.

Searching.

Linear Search.

Binary Search.

Comparing Search Algorithms.

Sorting.

Selection Sort.

Insertion Sort.

Bubble Sort.

Quick Sort.

Merge Sort.

 

12. Trees.

Trees.

Strategies for Implementing Trees.

Tree Traversals.

Implementing Binary Trees.

Using Binary Trees: Expression Trees.

 

13. Binary Search Trees.

A Binary Search Tree.

Implementing Binary Search Trees: with Links.

Using Binary Search Trees: Implementing Ordered Lists.

Balanced Binary Search Trees.

Implementing Binary Search Trees: AVL Trees.

Implementing Binary Search Trees: Red/Black Trees.

Implementing Binary Search Trees: The Java Collections API.

 

14. Ancestor Tree.

Initial Design

Implementing an AncestorTree

 

15. Heaps.

A Heap.

Using Heaps: Heap Sort.

Using Heaps: Priority Queues.

Implementing Heaps: with Links.

Implementing Heaps: with Arrays.

Analysis of Heap Implementations.

 

16. Multi-way Search Trees.

Combining Tree Concepts.

2-3 Trees.

2-4 Trees.

B-Trees.

Implementation Strategies for B-Trees.

 

17. Hashing.

A Hashing.

Hashing Functions.

Resolving Collisions.

Deleting Elements from a Hash Table.

Hash Tables in the Java Collections API.

Implementation Strategies for Hashtable

 

18. Graphs.

Undirected Graphs.

Directed Graphs.

Networks.

Common Graph Algorithms.

Implementation Strategies for Graphs

 

19. Web Crawler.

Initial Design

Implementing a Web Crawler

商品描述(中文翻譯)

描述:
《Java 軟體結構》第二版採用了 Java 5.0 的增強功能,所有結構和集合均基於泛型。這本書的框架引導讀者通過三個主要領域:概念化、解釋和實現,提供一致且連貫的數據結構介紹。新增的綜合案例研究提供完整的範例,幫助讀者從問題陳述開始,設計理由,直到完整實現。讀者將學會如何使用精心設計的集合和算法開發高品質的軟體系統。

目錄:
1. 軟體開發。
軟體工程。
軟體品質。
開發生命週期模型。
統一建模語言 (UML)。
錯誤處理。
算法分析。
軟體工程與數據結構。

2. 物件導向設計。
物件導向概述。
使用物件。
類別庫與套件。
狀態與行為。
類別。
封裝。
建構子。
方法重載。
參考重訪。
靜態修飾符。
包裝類別。
介面。
繼承。
類別層級。
多型。
泛型類型。
異常。

3. 集合。
集合介紹。
集合類別。
使用集合:賓果遊戲。
實現集合:使用陣列。
ArraySet 類別。
ArraySet 的分析。

4. 鏈結結構。
參考作為鏈結。
管理鏈結串列。
無鏈結的元素。
實現集合:使用鏈結。
LinkedSet 的分析。

5. 二十一點遊戲。
初步設計。
實現二十一點遊戲。

6. 堆疊。
堆疊 ADT。
使用堆疊:評估後綴表達式。
使用堆疊:遍歷迷宮。
實現堆疊:使用鏈結。
實現堆疊:使用陣列。
實現堆疊:java.util.Stack 類別。
堆疊實現的分析。

7. 隊列。
隊列 ADT。
使用隊列:代碼鍵。
使用隊列:票務櫃台模擬。
使用隊列:基數排序。
實現隊列:使用鏈結。
實現隊列:使用陣列。
實現隊列:使用圓形陣列。
隊列實現的分析。

8. 列表。
列表 ADT。
使用有序列表:錦標賽製作器。
使用索引列表:約瑟夫問題。
實現列表:使用陣列。
實現列表:使用鏈結。
列表實現的分析。

9. 計算器。
初步設計。
實現計算器。

10. 遞迴。
遞迴思維。
遞迴程式設計。
使用遞迴。
分析遞迴算法。

11. 排序與搜尋。
搜尋。
線性搜尋。
二元搜尋。
比較搜尋算法。
排序。
選擇排序。
插入排序。
冒泡排序。
快速排序。
合併排序。

12. 樹。
樹。
實現樹的策略。
樹的遍歷。
實現二元樹。