示例#1
0
        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);
        }
示例#2
0
        /// <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);
        }