ComponentesConexas::ComponentesConexas(Grafo const& G) : marked(G.V(), false), _id(G.V()), _size(G.V(),0), _count(0) { for (auto v = 0; v < G.V(); ++v) { if (!marked[v]) { // se recorre una nueva componente conexa dfs(G, v); ++_count; } } }
DepthFirstPaths::DepthFirstPaths(Grafo const& G, size_t s) : marked(G.V(), false), edgeTo(G.V()), s(s) { dfs(G, s); }
DepthFirstSearch::DepthFirstSearch(Grafo const& G, size_t s) : _count(0), _marked(G.V(), false) { dfs(G, s); }
BreadthFirstPaths::BreadthFirstPaths(Grafo const& G, size_t s) : marked(G.V(), false), edgeTo(G.V()), distTo(G.V()), s(s) { bfs(G, s); }