public static void carregaGrafo() { grafoD = new GrafoDirigido(); grafoND = new GrafoNaoDirigido(); grafoD.ListaVertice = new List <Vertice>(); grafoD.ListaAresta = new List <ArestaDirigida>(); grafoND.ListaVertice = new List <Vertice>(); grafoND.ListaAresta = new List <ArestaNaoDirigida>(); /* Nesse momento o programa abrirá já carregando os arquivoos para os vetores */ string[] naoDirigido = File.ReadAllLines(@"nao-dirigido.txt"); string[] dirigido = File.ReadAllLines(@"dirigido.txt"); grafoND.numVertice = int.Parse(naoDirigido[0]); //Inserindo vertices na lista for (int i = 0; i < grafoND.numVertice; i++) { grafoND.ListaVertice.Add(new Vertice(i + 1, ref grafoND)); } grafoD.numVertice = int.Parse(dirigido[0]); for (int i = 0; i < grafoD.numVertice; i++) { grafoD.ListaVertice.Add(new Vertice(i + 1, ref grafoD)); } //inserindo as arestas for (int i = 1; i < naoDirigido.Length; i++) { Vertice v1, v2; string[] linhaArq = naoDirigido[i].Split(';'); v1 = grafoND.ListaVertice.Find(x => x.valor == int.Parse(linhaArq[0])); v2 = grafoND.ListaVertice.Find(x => x.valor == int.Parse(linhaArq[1])); grafoND.ListaAresta.Add(new ArestaNaoDirigida(v1, v2, int.Parse(linhaArq[2]))); } for (int i = 1; i < dirigido.Length; i++) { Vertice v1, v2; string[] linhaArq = dirigido[i].Split(';'); v1 = grafoD.ListaVertice.Find(x => x.valor == int.Parse(linhaArq[0])); v2 = grafoD.ListaVertice.Find(x => x.valor == int.Parse(linhaArq[1])); grafoD.ListaAresta.Add(new ArestaDirigida(v1, v2, int.Parse(linhaArq[2]), int.Parse(linhaArq[3]))); } }
/*Contrutor da classe para criar vertices com X valores*/ public Vertice(int valor, ref GrafoDirigido grafo) { this.valor = valor; }