Esempio n. 1
0
        static void Main(string[] args)
        {
            Node nodeA = new Node("A");
            nodeA.Edges.Add(new Edge(nodeA.Name, "B", 5));
            nodeA.Edges.Add(new Edge(nodeA.Name, "D", 5));
            nodeA.Edges.Add(new Edge(nodeA.Name, "E", 7));

            Node nodeB = new Node("B");
            nodeB.Edges.Add(new Edge(nodeB.Name, "C", 4));

            Node nodeC = new Node("C");
            nodeC.Edges.Add(new Edge(nodeC.Name, "D", 8));
            nodeC.Edges.Add(new Edge(nodeC.Name, "E", 2));

            Node nodeD = new Node("D");
            nodeD.Edges.Add(new Edge(nodeD.Name, "C", 8));
            nodeD.Edges.Add(new Edge(nodeD.Name, "E", 6));

            Node nodeE = new Node("E");
            nodeE.Edges.Add(new Edge(nodeE.Name, "B", 3));

            Graph graph = new Graph();
            graph.Nodes.Add(nodeA);
            graph.Nodes.Add(nodeB);
            graph.Nodes.Add(nodeC);
            graph.Nodes.Add(nodeD);
            graph.Nodes.Add(nodeE);

            string re1 = graph.getDistanceOfRoute("A-B-C");
            string re2 = graph.getDistanceOfRoute("A-D");
            string re3 = graph.getDistanceOfRoute("A-D-C");
            string re4 = graph.getDistanceOfRoute("A-E-B-C-D");
            string re5 = graph.getDistanceOfRoute("A-E-D");

            Console.WriteLine(re1);
            Console.WriteLine(re2);
            Console.WriteLine(re3);
            Console.WriteLine(re4);
            Console.WriteLine(re5);

            var rere = graph.FindRoutes("C", "C");

            Console.WriteLine(re5);
        }
Esempio n. 2
0
        private void InitializeWeighting(Node originNode)
        {
            if (originNode.Edges==null||originNode.Edges.Count==0)
            {
                return;
            }

            foreach (Edge edge in originNode.Edges)
            {
                PassedPath pPath = this[edge.End];
                if (pPath==null)
                {
                    continue;
                }

                pPath.PassedIDList.Add(originNode.Name);
                pPath.Weighting = edge.Weighting;
            }
        }