80 likes | 167 Views
PRACTICO N° 6. GRAFOS año: 2012. 2. 3. 1. 6. 4. 5. Un grafo A consiste en un conjunto de vértices v y un conjunto de arcos a. Los vértices se denominan también puntos o nodos. G=(V,A) V={1,2,3,4,5,6}. Grafo dirigido.
E N D
PRACTICO N° 6 GRAFOSaño: 2012
2 3 1 6 4 5 Un grafo A consiste en un conjunto de vértices v y un conjunto de arcos a. Los vértices se denominan también puntos o nodos. G=(V,A) V={1,2,3,4,5,6} Grafo dirigido
Grafo puede ser dirigido ( la relación entre los nodos se representa con una flecha) Grafo no dirigido(nodos no apuntados) Camino P de longitud n. es el n° de arcos que lo forman, desde el Vo al Vn. Grafo No dirigido: grado de entrada es el n° de arcos que contiene a v. Grafo dirigido: se distingue grado de entrada(n° de arcos que llegan a el nodo) y grado de salida(n° de arcos que salen de el) Adyacente: (u,v) el vertice u es adyacente a v y el vertice v es adyacente a u. Ciclo: en un grafo dirigido es un camino cerrado.
// CLASE DEL GRAFO public class CGrafo { Vertice [] V; int [][]Matriz; int mv=5;// dimensión de la matriz Scanner ingreso; int numver=10;// número de nodos public CGrafo(){ // constructor Matriz=new int [mv][mv]; V=new Vertice[mv]; ingreso = new Scanner(System.in); } Implementación en jAVA
public void GenerarMatriz(){ for(int i=0;i<mv;i++) for(int j=0;j<mv;j++) Matriz[i][j]=0; } public void GenerarVector(){ for(int i=0;i<V.length;i++){ System.out.println("Ingrese Vertice"); int elem = ingreso.nextInt(); System.out.println("Ingrese ciudad"); String ci = ingreso.next(); V[i]=new Vertice(elem,ci); } } generar la Matriz y el vector de nodos
public void generarArco(){ Scanner entrada = new Scanner(System.in); char op = 's'; while (op != 'n') { System.out.println("Ingrese Vertice"); int elem = entrada.nextInt(); System.out.println("Ingrese Vertice 2"); int elem2 = entrada.nextInt(); AgregoArco(elem,elem2); System.out.println("Continuar s/n?"); op = entrada.next().charAt(0);} } // Agrego arco public void AgregoArco (int va, int vb){ if((va<0 || va>=mv) || (vb <0 || vb>=mv) ) System.out.println("no existe vertice"); else Matriz[vb][va]=1; } Generar el arco en la matriz
publicvoid Mostrar(intmv){ for(int i=0;i<mv;i++){ System.out.println("\n "); for(int j=0;j<mv;j++){ System.out.print(Matriz[i][j]+" ");} } } Mostrar Matriz
publicclassVertice { int numero; String ciudad; publicVertice(intn,Stringciu){ this.numero=n; this.ciudad=ciu;} // agregar los metodosget() y set() clase vertices(nodos)