Ejemplo n.º 1
0
        /* -----------
         *
         *  O arquivo contento uma instância do grafo deve ser criado da seguinte maneira:
         *
         *  - Primeira linha: número de vértices
         *  - Da segunda até a n-ésima linha: arestas do grafo. Três números inteiros separados por espaço simples,
         *  em que o primeiro número representa o vértice de origem da aresta, o segundo número o vértice de destino e o
         *  terceiro número o peso da aresta.
         *
         *  Para grafos não direcionados, deve-se criar uma nova linha para cada aresta, invertendo os vértices de origem
         *  e destino. Ou no código do programa, criar uma função para leitura do grafo que instancie grafos não direcionados.
         *  Neste caso, quando inserir uma aresta, inserir também outra aresta invertendo os vértices de origem e destino.
         *
         *  Exemplo de um arquivo contendo um grafo (peso 1 para todas as arestas) de 5 vértices e 6 arestas:
         *  5
         *  0 1 1
         *  0 2 1
         *  0 3 1
         *  2 1 1
         *  2 3 1
         *  4 3 1
         *
         * ------------- */
        private static void instanciaGrafo(StreamReader input, Grafo G)
        {
            int v1, v2, peso;

            String[] aresta;

            while (!input.EndOfStream)
            {
                aresta = input.ReadLine().Split(' ');

                v1   = int.Parse(aresta[0]);
                v2   = int.Parse(aresta[1]);
                peso = int.Parse(aresta[2]);

                G.insereAresta(v1, v2, peso);
                //G.insereAresta(v2, v1, peso); //Para grafos não-direcoinados.
            }
        }