fromSuccessorFunction method
Creates a Graph from start vertices
and a function successors
returning its succeeding vertices (outgoing adjacency).
Implementation
Graph<V, E> fromSuccessorFunction(
Iterable<V> vertices, Iterable<V> Function(V vertex) successors) {
final builder = newBuilder();
final todo = QueueList<V>();
final seen = vertexStrategy.createSet();
for (final vertex in vertices) {
builder.addVertex(vertex);
todo.add(vertex);
seen.add(vertex);
}
while (todo.isNotEmpty) {
final vertex = todo.removeFirst();
for (final successor in successors(vertex)) {
builder.addEdge(vertex, successor);
if (seen.add(successor)) {
todo.add(successor);
}
}
}
return builder.build();
}