Exemple #1
0
            public BuscaLargura(GrafoListaAdjacencia grafo, int inicial)
            {
                ArestaPara    = new int[grafo.QuantidadeVertices];
                DistanciaPara = new int[grafo.QuantidadeVertices];

                for (int i = 0; i < grafo.QuantidadeVertices; i++)
                {
                    DistanciaPara[i] = -1;
                    ArestaPara[i]    = -1;
                }

                Inicial = inicial;

                ExecutarBusca(grafo, inicial);
            }
Exemple #2
0
            private void ExecutarBusca(GrafoListaAdjacencia grafo, int inicial)
            {
                var fila = new Queue <int>();

                fila.Enqueue(inicial);
                DistanciaPara[inicial] = 0;

                while (fila.Count != 0)
                {
                    int v = fila.Dequeue();

                    foreach (var w in grafo.Adjacencia[v])
                    {
                        if (DistanciaPara[w] == -1)
                        {
                            fila.Enqueue(w);
                            DistanciaPara[w] = DistanciaPara[v] + 1;
                            ArestaPara[w]    = v;
                        }
                    }
                }
            }