public static INode GetNodeByName(this IEnumerable <INode> node, Constants.NombresNodos val) #if DEBUG { var result = node.First(n => n.Nombre.Equals(val)); return(result); }
IEnumerable <INode> Dijsktra(Constants.NombresNodos inicio, Constants.NombresNodos fin) { _visitados = new List <INode>(); _porVisitar = new List <INode>(); _camino = Nodes.ToList(); Inicio = inicio; Destino = fin; INode nodoActual; try { nodoActual = _porVisitar.GetNodeByName(inicio); nodoActual.PesoMinimo = 0f; while (nodoActual.Nombre != fin) { _porVisitar.Remove(nodoActual); _visitados.Add(nodoActual); foreach (var edge in nodoActual.Edges) { if (edge.Peso < nodoActual.PesoMinimo) { } } } } catch (Exception e) { throw; } return(_camino); }