Example #1
0
        public static void Main1(string[] args)
        {
            Graph g = new Graph();

            g.add_vertex('1', new Dictionary <char, int>()
            {
                { '2', 1 }, { '6', 6 }
            });
            g.add_vertex('2', new Dictionary <char, int>()
            {
                { '1', 1 }, { '2', 3 }, { '4', 1 }, { '6', 2 }
            });
            g.add_vertex('3', new Dictionary <char, int>()
            {
                { '2', 3 /* 0 */ }, { '4', 4 }, { '5', 5 }, { '6', 5 }
            });
            g.add_vertex('4', new Dictionary <char, int>()
            {
                { '3', 3 } /* 0 */, { '5', 5 }, { '2', 1 }                                             /* 0 */
            });
            g.add_vertex('5', new Dictionary <char, int>()
            {
                { '4', 4 }, { '6', 6 }, { '3', 5 }
            });
            g.add_vertex('6', new Dictionary <char, int>()
            {
                { '5', 5 }, { '7', 7 }, { '3', 5 }, { '1', 6 }, { '2', 2 }
            });
            g.add_vertex('7', new Dictionary <char, int>()
            {
                { '6', 6 }, { '8', 7 /*shtct*/ }, { 'A', 10 /*shtct*/ }, { '4', 4 }
            });
            g.add_vertex('8', new Dictionary <char, int>()
            {
                { '7', 3 }, { '9', 9 }
            });
            g.add_vertex('9', new Dictionary <char, int>()
            {
                { '8', 8 }, { 'A', 10 }
            });
            g.add_vertex('A', new Dictionary <char, int>()
            {
                { '9', 9 }, { '7', 10 }
            });

            g.shortest_path('1', 'A').ForEach(x => Console.WriteLine(x));
        }
Example #2
0
        public static void Main(string[] args)
        {
            Console.Title = "Dijkstra-Algorithmus";

            Graph g = new Graph();

            g.add_vertex('A', new Dictionary <char, int>()
            {
                { 'B', 7 }, { 'C', 8 }
            });
            g.add_vertex('B', new Dictionary <char, int>()
            {
                { 'A', 7 }, { 'F', 2 }
            });
            g.add_vertex('C', new Dictionary <char, int>()
            {
                { 'A', 8 }, { 'F', 6 }, { 'G', 4 }
            });
            g.add_vertex('D', new Dictionary <char, int>()
            {
                { 'F', 8 }
            });
            g.add_vertex('E', new Dictionary <char, int>()
            {
                { 'H', 1 }
            });
            g.add_vertex('F', new Dictionary <char, int>()
            {
                { 'B', 2 }, { 'C', 6 }, { 'D', 8 }, { 'G', 9 }, { 'H', 3 }
            });
            g.add_vertex('G', new Dictionary <char, int>()
            {
                { 'C', 4 }, { 'F', 9 }
            });
            g.add_vertex('H', new Dictionary <char, int>()
            {
                { 'E', 1 }, { 'F', 3 }
            });

            Console.WriteLine("Ausgangspunkt: ");
            var start = Console.ReadLine().ToUpper();

            Console.WriteLine("Zielpunkt: ");
            var ziel = Console.ReadLine().ToUpper();

            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.WriteLine("Der kürzeste Weg zu Punkt '" + ziel + "' ist:");
            g.shortest_path(Convert.ToChar(start), Convert.ToChar(ziel)).ForEach(x => Console.WriteLine(x));

            Console.ReadLine();
        }
        public static void Main(string[] args)
        {
            Graph g = new Graph();

            g.add_vertex('A', new Dictionary <char, int>()
            {
                { 'B', 7 }, { 'C', 8 }
            });
            g.add_vertex('B', new Dictionary <char, int>()
            {
                { 'A', 7 }, { 'F', 2 }
            });
            g.add_vertex('C', new Dictionary <char, int>()
            {
                { 'A', 8 }, { 'F', 6 }, { 'G', 4 }
            });
            g.add_vertex('D', new Dictionary <char, int>()
            {
                { 'F', 8 }
            });
            g.add_vertex('E', new Dictionary <char, int>()
            {
                { 'H', 1 }
            });
            g.add_vertex('F', new Dictionary <char, int>()
            {
                { 'B', 2 }, { 'C', 6 }, { 'D', 8 }, { 'G', 9 }, { 'H', 3 }
            });
            g.add_vertex('G', new Dictionary <char, int>()
            {
                { 'C', 4 }, { 'F', 9 }
            });
            g.add_vertex('H', new Dictionary <char, int>()
            {
                { 'E', 1 }, { 'F', 3 }
            });
            var paths = g.shortest_path('A', 'H');
            //use our iteration for out put
            IterationSample itSample = new IterationSample(paths);

            foreach (var value in itSample)
            {
                Console.WriteLine(value);
            }
            // out put is A B F H
            Console.ReadLine();
        }
Example #4
0
    void minDistance()
    {
        for (int i = 0; i < generalNodes.Length; i++)
        {
            Dictionary <int, int> dic = new Dictionary <int, int> ();
            for (int j = 0; j < generalNodes[i].GetComponent <Node>().exitNodes.Count; j++)
            {
                int d  = (int)(generalNodes [i].GetComponent <Node> ().exitNodes [j].distance);
                int id = generalNodes [i].GetComponent <Node> ().exitNodes [j].node.GetComponent <Node> ().Id;

                dic.Add(id, d);

                // new Dictionary<char, int> () { { 'B', 7 }, { 'C', 8 } }
            }
            graph.add_vertex(i, dic);
        }
    }
        public static void Main(string[] args)
        {
            Graph g = new Graph();

            g.add_vertex('A', new Dictionary <char, int>()
            {
                { 'B', 7 }, { 'C', 8 }
            });
            g.add_vertex('B', new Dictionary <char, int>()
            {
                { 'A', 7 }, { 'F', 2 }
            });
            g.add_vertex('C', new Dictionary <char, int>()
            {
                { 'A', 8 }, { 'F', 6 }, { 'G', 4 }
            });
            g.add_vertex('D', new Dictionary <char, int>()
            {
                { 'F', 8 }
            });
            g.add_vertex('E', new Dictionary <char, int>()
            {
                { 'H', 1 }
            });
            g.add_vertex('F', new Dictionary <char, int>()
            {
                { 'B', 2 }, { 'C', 6 }, { 'D', 8 }, { 'G', 9 }, { 'H', 3 }
            });
            g.add_vertex('G', new Dictionary <char, int>()
            {
                { 'C', 4 }, { 'F', 9 }
            });
            g.add_vertex('H', new Dictionary <char, int>()
            {
                { 'E', 1 }, { 'F', 3 }
            });

            g.shortest_path('A', 'H').ForEach(x => Console.WriteLine(x));
            Console.ReadKey();
        }
        public static void Main(string[] args)
        {
            Graph g = new Graph();
            g.add_vertex('A', new Dictionary<char, int>() {{'B', 7}, {'C', 8}});
            g.add_vertex('B', new Dictionary<char, int>() {{'A', 7}, {'F', 2}});
            g.add_vertex('C', new Dictionary<char, int>() {{'A', 8}, {'F', 6}, {'G', 4}});
            g.add_vertex('D', new Dictionary<char, int>() {{'F', 8}});
            g.add_vertex('E', new Dictionary<char, int>() {{'H', 1}});
            g.add_vertex('F', new Dictionary<char, int>() {{'B', 2}, {'C', 6}, {'D', 8}, {'G', 9}, {'H', 3}});
            g.add_vertex('G', new Dictionary<char, int>() {{'C', 4}, {'F', 9}});
            g.add_vertex('H', new Dictionary<char, int>() {{'E', 1}, {'F', 3}});

            g.shortest_path('A', 'H').ForEach( x => Console.WriteLine(x) );
        }
Example #7
0
        public static void Main(string[] args)
        {
            Graph g = new Graph();

            g.add_vertex('A', new Dictionary <char, int>()
            {
                { 'B', 20 }
            });
            g.add_vertex('B', new Dictionary <char, int>()
            {
                { 'A', 20 }, { 'C', 10 }, { 'E', 30 }, { 'J', 90 }, { 'H', 50 }
            });
            g.add_vertex('C', new Dictionary <char, int>()
            {
                { 'B', 10 }, { 'D', 30 }
            });
            g.add_vertex('D', new Dictionary <char, int>()
            {
                { 'C', 30 }, { 'F', 60 }, { 'E', 50 }
            });
            g.add_vertex('E', new Dictionary <char, int>()
            {
                { 'D', 50 }, { 'F', 20 }, { 'G', 30 }
            });
            g.add_vertex('F', new Dictionary <char, int>()
            {
                { 'E', 20 }, { 'G', 40 }, { 'L', 100 }
            });
            g.add_vertex('G', new Dictionary <char, int>()
            {
                { 'B', 50 }, { 'J', 30 }, { 'L', 40 }
            });
            g.add_vertex('H', new Dictionary <char, int>()
            {
                { 'I', 90 }
            });
            g.add_vertex('I', new Dictionary <char, int>()
            {
                { 'H', 90 }, { 'J', 40 }, { 'K', 90 }
            });
            g.add_vertex('J', new Dictionary <char, int>()
            {
                { 'I', 40 }, { 'K', 40 }, { 'G', 30 }
            });
            g.add_vertex('K', new Dictionary <char, int>()
            {
                { 'M', 20 }, { 'L', 30 }
            });
            g.add_vertex('L', new Dictionary <char, int>()
            {
                { 'F', 100 }, { 'K', 30 }
            });
            g.add_vertex('M', new Dictionary <char, int>()
            {
                { 'K', 20 }
            });



BB:
            Console.Write("Baslangıç: ");
            char baslangıc = Convert.ToChar(Console.ReadLine().ToUpper());

            Console.Write("Bitiş: ");
            char bitis = Convert.ToChar(Console.ReadLine().ToUpper());



            ArrayList dizi = new ArrayList();


            foreach (var item in g.shortest_path(baslangıc, bitis))
            {
                dizi.Add(item);
            }
            dizi.Add(baslangıc);
            Console.WriteLine("----BAŞLANGIÇ---");
            dizi.Reverse();
            foreach (var item in dizi)
            {
                Console.WriteLine(item + " ");
            }
            Console.WriteLine("----BİTİŞ-------");
            g.yolhesapla(dizi);
            g.lambahesapla(dizi);
            goto BB;
        }