예제 #1
0
        public void AddNode(List<NeighborNode> neighborNodes)
        {
            var node = new Node(Nodes.Count + 1);
            node.NeighborNodes = neighborNodes;
            UpdateId++;

            Nodes.Add(node);
            NodeStates.Add(new NodeState(Nodes, node.NodeId));

            foreach (var neighborNode in node.NeighborNodes)
            {
                var neighborNodeObj = ShortestPathFinder.FindNodeById(neighborNode.Id, Nodes);
                neighborNodeObj.AddNeighborNode(new NeighborNode(node.NodeId, neighborNode.PriceToNeighbor));
            }

            node.FinishedAddingConnections(Nodes, UpdateId);
        }
예제 #2
0
        public NodesManager()
        {
            UpdateId = 0;

            var node1 = new Node(1);
            var node2 = new Node(2);
            var node3 = new Node(3);
            var node4 = new Node(4);
            var node5 = new Node(5);
            var node6 = new Node(6);

            node1.NeighborNodes.Add(new NeighborNode(2, 7));
            node1.NeighborNodes.Add(new NeighborNode(3, 9));
            node1.NeighborNodes.Add(new NeighborNode(6, 14));

            node2.NeighborNodes.Add(new NeighborNode(4, 15));
            node2.NeighborNodes.Add(new NeighborNode(3, 10));
            node2.NeighborNodes.Add(new NeighborNode(1, 7));

            node3.NeighborNodes.Add(new NeighborNode(4, 11));
            node3.NeighborNodes.Add(new NeighborNode(2, 10));
            node3.NeighborNodes.Add(new NeighborNode(1, 9));
            node3.NeighborNodes.Add(new NeighborNode(6, 2));

            node4.NeighborNodes.Add(new NeighborNode(2, 15));
            node4.NeighborNodes.Add(new NeighborNode(3, 11));
            node4.NeighborNodes.Add(new NeighborNode(5, 6));

            node5.NeighborNodes.Add(new NeighborNode(4, 6));
            node5.NeighborNodes.Add(new NeighborNode(6, 9));

            node6.NeighborNodes.Add(new NeighborNode(5, 9));
            node6.NeighborNodes.Add(new NeighborNode(3, 2));
            node6.NeighborNodes.Add(new NeighborNode(1, 14));

            Nodes = new List<Node> { node1, node2, node3, node4, node5, node6 };

            NodeStates = new List<NodeState>();

            foreach (var node in Nodes)
            {
                NodeStates.Add(new NodeState(Nodes, node.NodeId));
            }
        }