Ejemplo n.º 1
0
        public void TestDijkstra()
        {
            Dijkstra dijkstra = graph.Dijkstra(0);

            for (int i = 1; i < graph.V(); i++)
            {
                Edge[] path = dijkstra.ShortestPath(i);

                TestContext.WriteLine("Path: " + ToString(path));
                TestContext.WriteLine("Weight: " + dijkstra.Weight(i).ToString());
            }
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            var graph = new WeightedGraph();

            graph.addVertex("A");
            graph.addVertex("B");
            graph.addVertex("C");
            graph.addVertex("D");
            graph.addVertex("E");
            graph.addVertex("F");

            graph.addEdge("A", "B", 4);
            graph.addEdge("A", "C", 2);
            graph.addEdge("B", "E", 3);
            graph.addEdge("C", "D", 2);
            graph.addEdge("C", "F", 4);
            graph.addEdge("D", "E", 3);
            graph.addEdge("D", "F", 1);
            graph.addEdge("E", "F", 1);

            var result = graph.Dijkstra("A", "E");

            Console.WriteLine(123);
        }
Ejemplo n.º 3
0
        public void DijkstraTest()
        {
            WeightedGraph <string>             weightedGraph = new WeightedGraph <string>();
            List <WeightedGraphNode <string> > seed          = new List <WeightedGraphNode <string> >
            {
                new WeightedGraphNode <string>()
                {
                    Data = "A", Weight = 0, Children = new Dictionary <string, double> {
                        { "B", 2 }, { "C", 5 }
                    }
                },
                new WeightedGraphNode <string>()
                {
                    Data = "B", Children = new Dictionary <string, double> {
                        { "A", 2 }, { "C", 6 }, { "D", 1 }, { "E", 3 }
                    }
                },
                new WeightedGraphNode <string>()
                {
                    Data = "C", Children = new Dictionary <string, double> {
                        { "A", 5 }, { "B", 6 }, { "F", 8 }
                    }
                },
                new WeightedGraphNode <string>()
                {
                    Data = "D", Children = new Dictionary <string, double> {
                        { "B", 1 }, { "E", 4 }
                    }
                },
                new WeightedGraphNode <string>()
                {
                    Data = "E", Children = new Dictionary <string, double> {
                        { "B", 3 }, { "D", 4 }, { "G", 9 }
                    }
                },
                new WeightedGraphNode <string>()
                {
                    Data = "F", Children = new Dictionary <string, double> {
                        { "C", 8 }, { "G", 7 }
                    }
                },
                new WeightedGraphNode <string>()
                {
                    Data = "G", Children = new Dictionary <string, double> {
                        { "E", 9 }, { "F", 7 }
                    }
                },
            };

            weightedGraph.NodeList = seed;
            weightedGraph.Dijkstra("A", "G");
            List <string> result = new List <string>()
            {
                "A", "B", "E", "G"
            };
            List <string> path = new List <string>();

            weightedGraph.GetShortest(ref path, "A", "G");
            path.Reverse();
            CollectionAssert.AreEqual(path, result);
        }