Features *Contains extensive sample code using Java 1.2, which is available over the Internet. *Covers the Java Collections Library in an appendix. *Includes a chapter on algorithm and design techniques that covers greedy algorithms, divide-and-conquer algorithms, dynamic programming, *randomized algorithms, and backtracking. *Presents current topics and new data structures such as Fibonacci heaps, skew heaps, binomial queues, skip lists, and splay trees. *Offers a chapter on amortized analysis that examines the advanced data structures presented earlier in the book. *Provides a chapter on advanced data structures and their implementation, covering red-black trees, top-down splay trees, treaps, k-d trees, pairing heaps, and more.
Table of Contents: Introduction. What's the Book About?
Mathematics Review.
A Brief Introduction to Recursion.
Generic Objects in Java.
Exceptions.
Input and Output.
Code Organization.
Algorithm Analysis. Mathematical Background.
Model.
What to Analyze.
Running Time Calculations.
Lists, Stacks, and Queues. Abstract Data Types (ADTs).
The List ADT.
The Stack ADT.
The Queue ADT.
Trees. Preliminaries.
Binary Trees.
The Search Tree ADT: Binary Search Trees.
AVL Trees.
Splay Trees.
Tree Traversals (Revisited).
B-Trees.
Hashing. General Idea.
Hash Function.
Separate Chaining.
Open Addressing.
Rehasing.
Extendible Hashing.
Priority Queues (Heaps). Model.
Simple Implementations.
Binary Heap.
Applications of Priority Queues.
d-heaps.
Leftist Heaps.
Skew Heaps.
Binomial Queues.
Sorting. Preliminaries.
Insertion Sort.
A Lower Bound for Simple Sorting Algorithms.
Shellsort.
Heapsort.
Mergesort.
Quicksort.
A General Lower Bound for Sorting.
Bucket Sort.
External Sorting.
The Disjoint Set ADT. Equivalence Relations.
The Dynamic Equivalence Problem.
Basic Data Structure.
Smart Union Algorithms.
Path Compression.
Worst Case for Union-by Rank and Path Compression.
An Application.
Graph Algorithms. Definitions.
Topological Sort.
Shortest-Path Algorithms.
Network Flow Problems.
Minimum Spanning Tree.
Applications of Depth-First Search.
Introduction to NP-Completeness.
Algorithm Design Techniques. Greedy Algorithms.
Divide and Conquer.
Dynamic Programming.
Randomized Algorithms.
Backtracking Algorithms.
Amortized Analysis. An Unrelated Puzzle.
Binomial Queues.
Skew Heaps.
Fibonacci Heaps.
Splay Trees.
Advanced Data Structures and Implementation. Top-Down Splay Trees.
Red Black Trees.
Deterministic Skip Lists.
AA-Trees.
Treaps.
k-d Trees.
Pairing Heaps.
Appendix A: Some Library Routines. Classes in Package java.lang.
Classes in Package java.io.
Classes in Package java.util.
Appendix B: The Collections Library. Introduction.
Basic Classes.
Lists.
Sets.
Maps.
Example: Generating a Concordance.
Example: Shortest Path Calculation. 0201357442T04062001