public static <N, R> R dfsFromNode( @NotNull N node, @NotNull Neighbors<N> neighbors, @NotNull Visited<N> visited, @NotNull NodeHandler<N, R> handler) { doDfs(node, neighbors, visited, handler); return handler.result(); }
public static <N, R> R dfs( @NotNull Collection<N> nodes, @NotNull Neighbors<N> neighbors, @NotNull Visited<N> visited, @NotNull NodeHandler<N, R> handler) { for (N node : nodes) { doDfs(node, neighbors, visited, handler); } return handler.result(); }