
On Thu, 19 Jan 2012, Andriy Gapon wrote:
This page: http://www.boost.org/doc/libs/1_48_0/libs/graph/doc/connected_components.htm... says "The connected_components() functions compute the connected components of an _undirected_ graph using a DFS-based approach." [emphasis mine]
Looking here: http://www.boost.org/doc/libs/1_48_0/boost/graph/connected_components.hpp I see somewhat some unexpected things.
o Only the first variant asserts that the graph is undirected, in the second variant the assert is commented out - why is that?
I don't know for sure, but the likely reason is to allow the use of a directed graph that has each edge inserted in both directions.
o Both variants use depth_first_search() and not undirected_dfs(), which would seem to be more logical for the undirected case - why?
I don't know.
Despite the above questions I actually want to use connected_components() [and not strong_components()] for a directed graph. Should that be possible? Does it make sense?
Do you want to compute the weak components of the graph? I.e., do you want the connected components that would be present if you ignored edge directions? -- Jeremiah Willcock