16.1 Introducing Graphs
16.1.1 Understanding Graphs
16.1.2 Representations
16.1.2.1 Links by Name
16.1.2.2 Links by Indices
16.1.2.3 A List of Edges
16.1.2.4 Abstracting Representations
16.1.3 Measuring Complexity for Graphs
16.2 Basic Graph Traversals
16.2.1 Reachability
16.2.1.1 Simple Recursion
16.2.1.2 Cleaning up the Loop
16.2.1.3 Traversal with Memory
16.2.1.4 A Better Interface
16.2.2 Depth- and Breadth-First Traversals
16.3 Graphs With Weighted Edges
16.4 Shortest (or Lightest) Paths
16.5 Moravian Spanning Trees
16.5.1 The Problem
16.5.2 A Greedy Solution
16.5.3 Another Greedy Solution
16.5.4 A Third Solution
16.5.5 Checking Component Connectedness