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); }
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; } }