Hola muy buenas, les dejo el algoritmo que propuse y me gustaría saber si cumple con el tipo el tipo de algoritmo que quieren en el curso (en tema de formalidad y especificidad).
void DFSArbol (G, u, T)
Marcar u como explorado
Foreach arista (u,v) incidente a u
If v no esta explorado
Añadir a v como hijo de u en Arbol T
invocar DFSArbol(G, v, T)
V Hay Ciclo (G)
Sea u nodo de G cualesquiera
Sea T árbol con solamente el nodo u
ejecutar DFS(G,u,T)
if T = G (tienen mismos vértices y aristas)
else
sean x e y vértices adyacentes en G pero no en T
retornar {x}U{y}U{el conjunto de vértices que están en el camino de x a y en T}
La idea del grafo es suponer que solo hay una componente conexa (en caso que no se ejecuta por cada componente) y que si el grafo tiene mas aristas que T entonces el grafo tiene un ciclo, y ese ciclo se puede formar con esa arista que no esta en T y el camino entre los vértices de esa arista en T.
Mi duda es además, cuando digo "agregar v como hijo de u", estaría suponiendo que el árbol resultante es dirigido? como evito eso
Esta bien? algo que agregar?
Desde ya saludos.