public void RemoveComponente(IComponente Componente) { if (Componente == null) { return; } Aresta aresta = (Aresta)Componente; if (Componentes.Contains(Componente)) { DistanciaTotal = DistanciaTotal - aresta.Distancia; Componentes.Remove(aresta); } }
public void AddComponente(IComponente Componente) { if (Componente == null) { return; } Aresta aresta = (Aresta)Componente; if (!Componentes.Contains(Componente)) { DistanciaTotal = DistanciaTotal + aresta.Distancia; Componentes.Add(aresta); } }
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; } } } return(melhor); }
bool VerificaSeJaFoiVizitado(Aresta a) { if (a.CidadeDestino.Equals(CidadeInicial)) { if (VerticesJaVisitados.Count == QtdeCidades) { return(false); } } foreach (Vertice cidade in VerticesJaVisitados) { if (a.CidadeDestino.Equals(cidade)) { return(true); } } return(false); }
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); }
bool VerificaSeJaFoiVizitado(Aresta a) { if (a.CidadeDestino.Equals(CidadeInicial)) if (VerticesJaVizitados.Count == QtdeCidades) return false; foreach (Vertice cidade in VerticesJaVizitados) if (a.CidadeDestino.Equals(cidade)) return true; return false; }
public void AddAresta(Aresta aresta) { Arestas.Add(aresta); }