connected method
Returns an iterable of the connected sub-graphs.
Implementation
Iterable<Graph<V, E>> connected() sync* {
final seen = vertexStrategy.createSet();
for (final start in vertices) {
if (seen.add(start)) {
final graph = copy(empty: true);
final traversal = BreadthFirstIterable([start],
successorsOf: neighboursOf, vertexStrategy: vertexStrategy);
for (final vertex in traversal) {
for (final edge in outgoingEdgesOf(vertex)) {
graph.addEdge(edge.source, edge.target, value: edge.value);
}
seen.add(vertex);
}
yield graph;
}
}
}