static Grafo_Dir MontagemGrafoDir(string arqName) { Grafo_Dir grafo; StreamReader reader = new StreamReader(arqName); int nVertices = int.Parse(reader.ReadLine()); List <ParOrdenado> lista = new List <ParOrdenado>(); while (!reader.EndOfStream) { int x, y, peso, direcao; string linha = reader.ReadLine(); string[] vetSplit = linha.Split(';'); x = int.Parse(vetSplit[0]) - 1; y = int.Parse(vetSplit[1]) - 1; peso = int.Parse(vetSplit[2]); direcao = int.Parse(vetSplit[3]); if (direcao == -1) { int aux = x; x = y; y = aux; } ParOrdenado par = new ParOrdenado(x, y, peso); lista.Add(par); } reader.Close(); return(grafo = new Grafo_Dir(nVertices, lista)); }
public override Grafo getComplementar() { Grafo_Und grafo; int nVertices; List <ParOrdenado> pares = new List <ParOrdenado>(); for (int i = 0; i < Vertices.Length; i++) { for (int j = 0; j < Vertices.Length; j++) { if (i != j) { if (!isAdjacente(Vertices[i], Vertices[j])) { if (!VerificarParExistente(Vertices[i].ID, Vertices[j].ID, pares)) { ParOrdenado par = new ParOrdenado(Vertices[i].ID, Vertices[j].ID); pares.Add(par); } } } } } nVertices = Vertices.Length; return(grafo = new Grafo_Und(nVertices, pares)); }
static Grafo_Und MontagemGrafoUnd(string arqName) { Grafo_Und grafo; StreamReader reader = new StreamReader(arqName); int nVertices = int.Parse(reader.ReadLine()); List <ParOrdenado> lista = new List <ParOrdenado>(); while (!reader.EndOfStream) { int x, y, peso; string linha = reader.ReadLine(); string[] vetSplit = linha.Split(';'); x = int.Parse(vetSplit[0]) - 1; y = int.Parse(vetSplit[1]) - 1; peso = int.Parse(vetSplit[2]); ParOrdenado par = new ParOrdenado(x, y, peso); lista.Add(par); } reader.Close(); return(grafo = new Grafo_Und(nVertices, lista)); }