/// <summary> /// Valida si existen ciclos dirigidos o no dirigidos en el grafo representado por este árbol. /// </summary> /// <returns><code>true</code> si existen ciclos dirigidos o no dirigidos. <code>false</code> en cualquier otro caso.</returns> public bool TieneCiclos(List <String> arcoRol) { DetectorDeCiclos detector = new DetectorDeCiclos(); if (detector.ContieneCiclos(NodoRaiz, arcoRol)) { return(true); } return(false); }
/// <summary> /// Valida si existen ciclos dirigidos o no dirifidos por cada grafo a partir del nodo raíz del árbol /// </summary> /// <param name="arcoRol">Tipo de arcos a validar</param> /// <returns>true si hay ciclos en algún grafo que parte del nodo raíz</returns> public bool TieneCiclosPorGrafo(List <string> arcoRol) { //Detección de ciclos por cada inicio de grafo a partir del nodo raíz foreach (var conn in NodoRaiz.ConectoresSalientes) { DetectorDeCiclos detector = new DetectorDeCiclos(); if (detector.ContieneCiclos(conn.NodoSiguiente, arcoRol)) { return(true); } } return(false); }