///////////////////////////////////////////////////////// Crear grafo a partir de un archivo // /////////////////////////////////////////////// public Grafo Grafo(String n) { Grafo g = null; File file = new File(n); try { String line; FileReader filer = new FileReader(file); BufferedReader buf = new BufferedReader(filer); String linea = buf.readLine().trim(); boolean seguir = true; if (linea != null) { if (!linea.equals("d") && !linea.equals("n")) { System.out.println("El archivo está mal escrito"); } else { StringTokenizer token = new StringTokenizer(linea); String Dir = token.nextToken(); linea = buf.readLine().trim(); token = new StringTokenizer(linea); int nV = Integer.parseInt(token.nextToken()); token = new StringTokenizer(linea); linea = buf.readLine().trim(); token = new StringTokenizer(linea); int nL = Integer.parseInt(token.nextToken()); boolean dirigido = false; if (Dir.equals("d")) { System.out.println("Dirigido"); g = new GrafoDirigido(); dirigido = true; } else if (Dir.equals("n")) { System.out.println("NoDirigido"); g = new GrafoNoDirigido(); dirigido = false; } int i = 0; while (i < nV && (linea = buf.readLine().trim()) != null) { token = new StringTokenizer(linea); String idVer = token.nextToken(); double peso = Double.parseDouble(token.nextToken()); Vertice ver = new Vertice(peso, idVer); g.agregarVertice(g, ver); i++; } i = 0; while (i < nL && (linea = buf.readLine().trim()) != null) { token = new StringTokenizer(linea); String idL = token.nextToken(); String idv1 = token.nextToken(); String idv2 = token.nextToken(); double peso2 = Double.parseDouble(token.nextToken()); if (dirigido == true) { Arco ac = new Arco(peso2, idL, idv1, idv2); ((GrafoDirigido) g).agregarArco(((GrafoDirigido) g), ac); } else { Arista at = new Arista(peso2, idL, idv1, idv2); ((GrafoNoDirigido) g).agregarArista(((GrafoNoDirigido) g), at); } ; i++; } ; System.out.println("El grafo se creo exitosamente!!"); g.vertices(g); g.lados(g); } } buf.close(); } catch (FileNotFoundException e) { System.out.println("El archivo no existe"); g = new GrafoDirigido(); } catch (IOException e) { System.out.println("Excepcion, intente de nuevo"); } return g; }