# Table of Contents: the Boost Graph Library

1. Introduction to the BGL
2. Parallel BGL (distributed-memory parallel graph data structures and algorithms)
3. History
4. List of BGL Users
5. Publications
6. Acknowledgements
7. A Quick Tour of the Boost Graph Library.
8. Review of Elementary Graph Theory
9. Boost Graph Library Tutorial
   1. Property Maps
   2. The `adjacency_list` class
10. Examples
    1. File Dependency Example
    2. Six Degrees of Kevin Bacon
    3. Graph Coloring
    4. Sparse Matrix Ordering
11. Extending the Boost Graph Library
    1. Constructing graph algorithms with BGL
    2. Converting Existing Graphs to BGL
12. The Boost Graph Interface
    1. Graph
    2. Incidence Graph
    3. Bidirectional Graph
    4. Adjacency Graph
    5. Vertex List Graph
    6. Edge List Graph
    7. Vertex and Edge List Graph
    8. Adjacency Matrix
    9. Mutable Graph
    10. Property Graph
    11. Mutable Property Graph
13. The Property Map Library (technically not part of the graph library, but used a lot here)
14. Python bindings
15. Visitor Concepts
    1. BFS Visitor
    2. DFS Visitor
    3. Dijkstra Visitor
    4. Bellman Ford Visitor
    5. A* Visitor
    6. Event Visitor
    7. Planar Face Visitor
    8. TSP Tour Visitor
16. EventVisitorList Adaptors
    1. Event Visitor List
    2. `bfs_visitor`
    3. `dfs_visitor`
    4. `dijkstra_visitor`
    5. `bellman_visitor`
    6. `astar_visitor`
17. Event Visitors
    1. `predecessor_recorder`
    2. `edge_predecessor_recorder`
    3. `distance_recorder`
    4. `time_stamper`
    5. `property_writer`
    6. `property_put`
    7. `tsp_tour_visitor`
    8. `tsp_tour_len_visitor`
18. Graph classes
    1. `adjacency_list`
    1. `directed_graph`
    2. `undirected_graph`
    2. `adjacency_matrix`
    3. `compressed_sparse_row_graph`
19. Graph Adaptors
    1. `subgraph`
    2. `edge_list`
    3. `reverse_graph`
    4. `filtered_graph`
    5. Vector as Graph *
    6. Matrix as Graph*
    7. Leda Graph *
    8. Stanford GraphBase
    9. Implicit Graphs
       1. Multi-dimensional grid graph
20. Iterator Adaptors
    1. `adjacency_iterator`
    2. `inv_adjacency_iterator`
21. Traits classes
    1. `graph_traits`
    2. `adjacency_list_traits`
    3. `property_map`
22. Algorithms
    1. Named parameters (used in many graph algorithms)
    2. Basic Operations
       1. `copy_graph`
       2. `transpose_graph`
    3. Core Searches
       1. `breadth_first_search`
       2. `breadth_first_visit`
       3. `depth_first_search`
       4. `depth_first_visit`
       5. `undirected_dfs`
    4. Other Core Algorithms
       1. `topological_sort`
       2. `transitive_closure`
       3. `lengauer_tarjan_dominator_tree`
    5. Shortest Paths / Cost Minimization Algorithms
       1. `dijkstra_shortest_paths`
       2. `dijkstra_shortest_paths_no_color_map`
       3. `bellman_ford_shortest_paths`
       4. `dag_shortest_paths`
       5. `johnson_all_pairs_shortest_paths`
       6. `floyd_warshall_all_pairs_shortest_paths`
       7. `r_c_shortest_paths` - resource-constrained shortest paths
       8. `astar_search` (A* search algorithm)
    6. Minimum Spanning Tree Algorithms
       1. `kruskal_minimum_spanning_tree`
       2. `prim_minimum_spanning_tree`
    7. Random Spanning Tree Algorithm
       1. `random_spanning_tree`
    8. Algorithm for Common Spanning Trees of Two Graphs
       1. `two_graphs_common_spanning_trees`
    9. Connected Components Algorithms
       1. `connected_components`
       2. `strong_components`
       3. `biconnected_components`
       4. `articulation_points`
       5. Incremental Connected Components
          1. `initialize_incremental_components`
          2. `incremental_components`
          3. `same_component`
          4. `component_index`
    10. Maximum Flow and Matching Algorithms
        1. `edmonds_karp_max_flow`
        2. `push_relabel_max_flow`
        3. `boykov_kolmogorov_max_flow`
        4. `edmonds_maximum_cardinality_matching`
        5. `maximum_weighted_matching`
    11. Minimum Cost Maximum Flow Algorithms
        1. `cycle_canceling`
        2. `successive_shortest_path_nonnegative_weights`
        3. `find_flow_cost`
    12. Minimum Cut Algorithms
        1. `stoer_wagner_min_cut`
    13. Sparse Matrix Ordering Algorithms
        1. `cuthill_mckee_ordering`
        2. `king_ordering`
        3. `minimum_degree_ordering`
        4. `sloan_ordering`
        5. `sloan_start_end_vertices`
    14. Graph Metrics
        1. `ith_wavefront`, `max_wavefront`, `aver_wavefront`, and `rms_wavefront`
        2. `bandwidth`
        3. `ith_bandwidth`
        4. `brandes_betweenness_centrality`
        5. `minimum_cycle_ratio` and `maximum_cycle_ratio`
    15. Graph Structure Comparisons
        1. `isomorphism`
        2. `vf2_sub_graph_iso` (VF2 subgraph isomorphism algorithm)
        3. `mcgregor_common_subgraphs`
    16. Layout Algorithms
        1. Topologies used as spaces for graph drawing
        2. `random_graph_layout`
        3. `circle_layout`
        4. `kamada_kawai_spring_layout`
        5. `fruchterman_reingold_force_directed_layout`
        6. `gursoy_atun_layout`
    17. Clustering algorithms
        1. `betweenness_centrality_clustering`
    18. Planar Graph Algorithms
        1. `boyer_myrvold_planarity_test`
        2. `planar_face_traversal`
        3. `planar_canonical_ordering`
        4. `chrobak_payne_straight_line_drawing`
        5. `is_straight_line_drawing`
        6. `is_kuratowski_subgraph`
        7. `make_connected`
        8. `make_biconnected_planar`
        9. `make_maximal_planar`
    19. Miscellaneous Algorithms
        1. `metric_tsp_approx`
        2. `sequential_vertex_coloring`
        3. `edge_coloring`
        4. `is_bipartite` (including two-coloring of bipartite graphs)
        5. `find_odd_cycle`
        6. `maximum_adjacency_search`
        7. `hawick_circuits` (find all circuits of a directed graph)
23. Graph Input/Output
    1. AT&T Graphviz: read_graphviz, write_graphviz
    2. DIMACS Max-flow: read_dimacs_max_flow and read_dimacs_min_cut, write_dimacs_max_flow
    3. GraphML: read_graphml and write_graphml
24. Auxiliary Concepts, Classes, and Functions
    1. `property`
    2. ColorValue
    3. Buffer
    4. BasicMatrix
    5. `incident`
    6. `opposite`
    7. Tools for random graphs
       1. random_vertex
       2. random_edge
       3. generate_random_graph
       4. randomize_property
       5. `erdos_renyi_iterator`
       6. `sorted_erdos_renyi_iterator`
       7. `plod_iterator`
       8. `small_world_iterator`
25. Challenge and To-Do List
26. Trouble Shooting
27. Known Problems
28. FAQ
29. BGL Book Errata

* Items marked have not yet been documented.

Copyright © 2000-2001 | Jeremy Siek, Indiana University (jsiek@osl.iu.edu) Lie-Quan Lee, Indiana University (llee@cs.indiana.edu) Andrew Lumsdaine, Indiana University (lums@osl.iu.edu)