Algorithms in Java, Third Edition, Part 5: Graph Algorithms

Book description

Once again, Robert Sedgewick provides a current and comprehensive introduction to important algorithms. The focus this time is on graph algorithms, which are increasingly critical for a wide range of applications, such as network connectivity, circuit design, scheduling, transaction processing, and resource allocation. In this book, Sedgewick offers the same successful blend of theory and practice that has made his work popular with programmers for many years. Michael Schidlowsky and Sedgewick have developed concise new Java implementations that both express the methods in a natural and direct manner and also can be used in real applications.

Algorithms in Java, Third Edition, Part 5: Graph Algorithms is the second book in Sedgewick's thoroughly revised and rewritten series. The first book, Parts 1-4, addresses fundamental algorithms, data structures, sorting, and searching. A forthcoming third book will focus on strings, geometry, and a range of advanced algorithms. Each book's expanded coverage features new algorithms and implementations, enhanced descriptions and diagrams, and a wealth of new exercises for polishing skills. The natural match between Java classes and abstract data type (ADT) implementations makes the code more broadly useful and relevant for the modern object-oriented programming environment.

The Web site for this book (www.cs.princeton.edu/~rs/) provides additional source code for programmers along with a variety of academic support materials for educators.

Coverage includes:

  • A complete overview of graph properties and types

  • Diagraphs and DAGs

  • Minimum spanning trees

  • Shortest paths

  • Network flows

  • Diagrams, sample Java code, and detailed algorithm descriptions

A landmark revision, Algorithms in Java, Third Edition, Part 5 provides a complete tool set for programmers to implement, debug, and use graph algorithms across a wide range of computer applications.

Table of contents

  1. About This eBook
  2. Title Page
  3. Copyright Page
  4. Preface
    1. Algorithms
    2. Scope
    3. Use in the Curriculum
    4. Algorithms of Practical Use
    5. Programming Language
    6. Acknowledgments
    7. Java Consultant’s Preface
  5. Dedication Page
  6. Notes on Exercises
  7. Contents
  8. Part Five: Graph Algorithms
    1. Chapter Seventeen. Graph Properties and Types
      1. 17.1 Glossary
      2. Exercises
      3. 17.2 Graph ADT
      4. Exercises
      5. 17.3 Adjacency-Matrix Representation
      6. Exercises
      7. 17.4 Adjacency-Lists Representation
      8. Exercises
      9. 17.5 Variations, Extensions, and Costs
      10. Exercises
      11. 17.6 Graph Generators
      12. Exercises
      13. 17.7 Simple, Euler, and Hamilton Paths
      14. Exercises
      15. 17.8 Graph-Processing Problems
      16. Exercises
    2. Chapter Eighteen. Graph Search
      1. 18.1 Exploring a Maze
      2. Exercises
      3. 18.2 Depth-First Search
      4. Exercises
      5. 18.3 Graph-Search ADT Methods
      6. Exercises
      7. 18.4 Properties of DFS Forests
      8. Exercises
      9. 18.5 DFS Algorithms
      10. Exercises
      11. 18.6 Separability and Biconnectivity
      12. Exercises
      13. 18.7 Breadth-First Search
      14. Exercises
      15. 18.8 Generalized Graph Search
      16. Exercises
      17. 18.9 Analysis of Graph Algorithms
      18. Exercises
    3. Chapter Nineteen. Digraphs and DAGs
      1. Exercises
      2. 19.1 Glossary and Rules of the Game
      3. Exercises
      4. 19.2 Anatomy of DFS in Digraphs
      5. Exercises
      6. 19.3 Reachability and Transitive Closure
      7. Exercises
      8. 19.4 Equivalence Relations and Partial Orders
      9. Exercises
      10. 19.5 DAGs
      11. Exercises
      12. 19.6 Topological Sorting
      13. Exercises
      14. 19.7 Reachability in DAGs
      15. Exercises
      16. 19.8 Strong Components in Digraphs
      17. Exercises
      18. 19.9 Transitive Closure Revisited
      19. Exercises
      20. 19.10 Perspective
      21. Exercises
    4. Chapter Twenty. Minimum Spanning Trees
      1. Exercises
      2. 20.1 Representations
      3. Exercises
      4. 20.2 Underlying Principles of MST Algorithms
      5. Exercises
      6. 20.3 Prim’s Algorithm and Priority-First Search
      7. Exercises
      8. 20.4 Kruskal’s Algorithm
      9. Exercises
      10. 20.5 Boruvka’s Algorithm
      11. Exercises
      12. 20.6 Comparisons and Improvements
      13. Exercises
      14. 20.7 Euclidean MST
      15. Exercises
    5. Chapter Twenty-One. Shortest Paths
      1. Exercises
      2. 21.1 Underlying Principles
      3. Exercises
      4. 21.2 Dijkstra’s Algorithm
      5. Exercises
      6. 21.3 All-Pairs Shortest Paths
      7. Exercises
      8. 21.4 Shortest Paths in Acyclic Networks
      9. Exercises
      10. 21.5 Euclidean Networks
      11. Exercises
      12. 21.6 Reduction
      13. Exercises
      14. 21.7 Negative Weights
      15. Exercises
      16. 21.8 Perspective
    6. Chapter Twenty-Two. Network Flow
      1. 22.1 Flow Networks
      2. Exercises
      3. 22.2 Augmenting-Path Maxflow Algorithms
      4. Exercises
      5. 22.3 Preflow-Push Maxflow Algorithms
      6. Exercises
      7. 22.4 Maxflow Reductions
      8. Exercises
      9. 22.5 Mincost Flows
      10. Exercises
      11. 22.6 Network Simplex Algorithm
      12. Exercises
      13. 22.7 Mincost-Flow Reductions
      14. Exercises
      15. 22.8 Perspective
  9. References for Part Five
  10. Index
  11. Code Snippets

Product information

  • Title: Algorithms in Java, Third Edition, Part 5: Graph Algorithms
  • Author(s): Robert Sedgewick
  • Release date: July 2013
  • Publisher(s): Addison-Wesley Professional
  • ISBN: 0201361213