Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }