//----------------------------------------------------------------------------------------------// public List <String> AEstrella(Nodo nodoInicio, Nodo nodoFinal) { ObjetoCamino objetoPivote = null; Console.WriteLine(listaRecorrido.Count); MeteVecinosOrig(nodoInicio); while (true) { objetoPivote = listaRecorrido[0]; foreach (ObjetoCamino obj in listaRecorrido) { if (obj.value < objetoPivote.value) { objetoPivote = obj; } } if (objetoPivote.nombre == nodoFinal.Nombre) { objetoPivote.ruta.Add(nodoFinal.Nombre); foreach (string nodo in objetoPivote.ruta) { Console.Write(nodo + "-"); } return(objetoPivote.ruta); } listaRecorrido.Remove(objetoPivote); MeteVecinosEnLista(objetoPivote); } }
public void MeteVecinosOrig(Nodo nodo) { ObjetoCamino temp = null; foreach (Arista arista in nodo.Aristas) { temp = new ObjetoCamino(); temp.nombre = arista.destino.Nombre; temp.value = arista.peso + Heuristica[arista.destino.Nombre]; temp.ruta.Add(arista.partida.Nombre); listaRecorrido.Add(temp); } }
public void MeteVecinosEnLista(ObjetoCamino ObjCamino) { ObjetoCamino temp = null; foreach (Arista arista in BuscaNodo(ObjCamino.nombre).Aristas) { temp = new ObjetoCamino(); temp.nombre = arista.destino.Nombre; temp.value = arista.peso + Heuristica[arista.destino.Nombre] + ObjCamino.value; temp.ruta.AddRange(ObjCamino.ruta); temp.ruta.Add(arista.partida.Nombre); listaRecorrido.Add(temp); } }