public static List <string> PrintAllMinPaths(Dekstra 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); }
/// <summary> /// найти кратчайший путь между заданными точками /// </summary> /// <param name="idstart"></param> /// <param name="idstop"></param> /// <returns></returns> public static string GetShortPath(int idstart, int idstop) { string result = string.Empty; Point[] p = GetPoint(); Edge[] r = GetRebro(p); Dekstra alg = new Dekstra(p, r); // создание экземпляра для расчета try { alg.Run(idstart); // вызов алгоритма расчета List <string> lr = PrintGrath.PrintAllMinPaths(alg); // результат } catch { return("Путь не существует!"); } return(result); }