Java Software Structures: Designing and Using Data Structures, 2/e (Paperback)

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. 面向對象設計。
- 面向對象概述。
- 使用對象。
- 類庫和套件。
- 狀態和行為。
- 類。
- 封裝。
- 構造函數。
- 方法重載。
- 重新訪問引用。
- 靜態修飾符。
- 封裝類。
- 接口。
- 繼承。
- 類層次結構。
- 多態性。
- 泛型類型。
- 异常。