About the Book
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.
Features
-
Uses Java 5.0: Each collection in the book
is designed and implemented using generics, a powerful tool recently added
to the Java programming language.
-
Focuses on Object-Oriented Design: Early
chapters focus on this important topic, which is then woven as a recurring
theme throughout the rest of the book.
-
Provides complete examples: Four
new case studies explore the object-oriented design and full implementation
of interesting software systems.
-
Graphical User Interface topics: Select examples
demonstrate GUI development for those who want to cover this material.
-
Provides strong supplemental support: including
presentation slides, test bank, and solutions.
Related
Books
Data Structures - Programming
Courses (Data Structures)
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. Case Study—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. Case Study—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. Case Study—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. Case Study—Web Crawler.
Initial Design
Implementing a Web Crawler
Appendices. |