public Route getRoute(int p1, int p2) { int[] idxs; if (calculatedDejksters.ContainsKey(p1)) { DejkstraAlgorim alg = calculatedDejksters[p1]; idxs = pathToArray(alg.MinPath1(alg.points[p2])); idxs = idxs.Reverse().ToArray <int>(); } else if (calculatedDejksters.ContainsKey(p2)) { DejkstraAlgorim alg = calculatedDejksters[p2]; idxs = pathToArray(alg.MinPath1(alg.points[p1])); } else { DejkstraAlgorim alg = startNewDejkster(p1); idxs = pathToArray(alg.MinPath1(alg.points[p2])); idxs = idxs.Reverse().ToArray <int>(); } Route r = new Route(idxs); return(r); }
public static List <string> PrintAllMinPaths(DejkstraAlgorim da) { List <string> retListOfPointsAndPaths = new List <string>(); foreach (Point p in da.points) { if (p != da.BeginPoint) { string s = string.Empty; foreach (Point p1 in da.MinPath1(p)) { s += string.Format("{0} ", p1.Name); } retListOfPointsAndPaths.Add(string.Format("Point ={0},MinPath from {1} = {2}", p.Name, da.BeginPoint.Name, s)); } } return(retListOfPointsAndPaths); }