Beispiel #1
0
        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])));
            }
        }
Beispiel #2
0
 /*Contrutor da classe para criar vertices com  X valores*/
 public Vertice(int valor, ref GrafoDirigido grafo)
 {
     this.valor = valor;
 }