Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

C++ Boost

Table of Contents: the Boost Graph Library BGL Book

  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)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)