/*
         * Método para adicionar vértices e arestas aos grafos
         */
        private void preencher_Grafo()
        {
            string[] Linha;
            int      pesoAresta;
            Vertice  Vert_1, Vert_2;
            Vertice  Vert_1_aux, Vert_2_aux;
            Aresta   novaAresta;

            for (int i = 1; i < this.Arquivo.Length; i++)
            {
                Linha = this.Arquivo[i].Split(';');
                if (Linha[0] == "")
                {
                    continue;
                }
                Vert_1 = new Vertice(Linha[0]);
                Vert_2 = new Vertice(Linha[1]);

                Vert_1_aux = this.procurar_Vertice(Vert_1);
                Vert_2_aux = this.procurar_Vertice(Vert_1);

                if (Vert_1_aux == null)
                {
                    this.Lista_Vertice.Add(Vert_1);
                }
                else
                {
                    Vert_1 = Vert_1_aux;
                }

                if (Vert_2_aux == null)
                {
                    this.Lista_Vertice.Add(Vert_1);
                }
                else
                {
                    Vert_2 = Vert_2_aux;
                }

                // verifica se um vértice não consta na lista de adjacência do outro,
                // chama os métodos para adicionar adjacente para o vértice 1 e 2
                if (!this.IsAdjacente(Vert_1, Vert_2))
                {
                    Vert_1.adicionar_Adjacente(Vert_2);
                    Vert_2.adicionar_Adjacente(Vert_1);
                }

                pesoAresta = int.Parse(Linha[2]);
                novaAresta = new Aresta(pesoAresta, Vert_1, Vert_2);

                this.Lista_Aresta.Add(novaAresta);

                Vert_1.adicionar_Aresta(novaAresta);
                Vert_2.adicionar_Aresta(novaAresta);
            }
        }
示例#2
0
 /*
  * Méotodo para adicionar aresa
  */
 public void adicionar_Aresta(Aresta aresta)
 {
     this.aresta.Add(aresta);
 }