public override List <IComponente> GerarComponentes() { List <IComponente> arestas = new List <IComponente>(); //if (Arestas.Count == 0) if (Grafo.Componentes.Count == 0) { foreach (Aresta a in CidadeInicial.Arestas()) { if (!VerificaSeJaFoiVizitado(a)) { arestas.Add(a); } } } else { foreach (Aresta a in VerticesJaVisitados.Last().Arestas())//isso não está funcionando. Não está retornando nada. { if (!VerificaSeJaFoiVizitado(a)) { arestas.Add(a); } } } return(arestas); }
public override IComponente EscolheMelhorComponente(List <IComponente> Componentes) { Aresta melhor = (Aresta)Componentes.FirstOrDefault(); foreach (Aresta aresta in Componentes) { if (melhor != null) { if ((int)melhor.Valor < (int)aresta.Valor) { melhor = aresta; } } } if (melhor != null) { VerticesJaVisitados.Enqueue(melhor.CidadeDestino); } return(melhor); }