grafo.insArco(1,2,5); grafo.insArco(4,3,5); grafo.insArco(2,4,5); grafo.insArco(3,1,5); int resp=hayCiclo(grafo,2); System.out.println("hay ciclo ?: "+resp); } //problema 111 pagina 314 tema:grafos
//recibe un grafo y una pocicion;retorna 1 en caso de ser verdadero y -1 en caso de ser falso public static int hayCiclo(Grafo g,int V){ Vertice []v=g.vertices; Arco []a=g.arcos; int estate=0; int i=0,tem=V; for(i=0;a[i]!=null;i++){ if(a[i].Vn.pos==tem){ tem=a[i].Vn1.pos; i=-1; estate++; if(tem==V){ estate=1; break; } if(estate>g.orden){ estate=-1; break; } } } return estate; }
}
Ejercicio 121
public static Lista frontera2(Grafo g,int v, int l) // retorna una lista del grafo con todas los vertices del grafo a los cuales existe un camino simple de longitud menor o igual que parte del vertice v // clase test grafo public class testGrafos {
Lista lis=frontera2(grafo,2,11); System.out.println("se tienen los vertices "+lis.toString()+" "); }
//problema 121 pgina 315 // private static Lista frontera2(Grafo g, int v, int l) { Lista list=new Lista(); Nodo nodo=new Nodo(0); Arco []a=g.arcos; int tem=0;
Ejercicio 122 private static int existeMayor(Grafo g, int v1, int v2, int l) { //Imforma si existe un camino que lleve de v1 a v2 con una longitud mayor a l public class testGrafos {
grafo.insArco(4,3,5); grafo.insArco(2,4,5); grafo.insArco(1,2,5); grafo.insArco(3,1,5); grafo.insArco(2,3,5); grafo.insArco(1,3,5); int v=existeMayor(grafo,1,3,14);
System.out.println("la longitud es de "+v); }
//problema propuesto 122 pag 315 //problema propuesto 6.12 //recive el grafo , el de inicio y el vertice al que se tiene que llegar retorna la longitud del camino si este es mayor que l, caso contrario retorna 0 private static int existeMayor(Grafo g, int v1, int v2, int l) {
Arco []a=g.arcos; int tem=v1; int lo=0; for(int i=0;a[i]!=null;i++){