コード例 #1
0
ファイル: VertexRegister.cs プロジェクト: lurongkai/SuperNet
 internal void UpdateRegister(VertexRegister milestoneRegister, IEdge edge)
 {
     TotalWeight = milestoneRegister.TotalWeight + edge.Weight;
     EdgeTracks.Clear();
     EdgeTracks = milestoneRegister.EdgeTracks.Select(et => et).ToList();
     EdgeTracks.Add(edge);
 }
コード例 #2
0
 internal void UpdateRegister(VertexRegister milestoneRegister, IEdge edge)
 {
     TotalWeight = milestoneRegister.TotalWeight + edge.Weight;
     EdgeTracks.Clear();
     EdgeTracks = milestoneRegister.EdgeTracks.Select(et => et).ToList();
     EdgeTracks.Add(edge);
 }
コード例 #3
0
ファイル: Dijkstra.cs プロジェクト: lurongkai/SuperNet
 private void UpdateRelatedRegister(VertexRegister milestoneRegister)
 {
     var milestoneVertex = milestoneRegister.Vertex;
     foreach(var edge in milestoneVertex.OutDegreeEdge) {
         var targetRegister = _registerManager.GetRegister(edge.To);
         var attemtpWeight = milestoneRegister.TotalWeight + edge.Weight;
         if(attemtpWeight < targetRegister.TotalWeight) {
             targetRegister.UpdateRegister(milestoneRegister, edge);
         }
     }
     milestoneRegister.Registed = true;
 }
コード例 #4
0
ファイル: Dijkstra.cs プロジェクト: ceidion/SuperNet
        private void UpdateRelatedRegister(VertexRegister milestoneRegister)
        {
            var milestoneVertex = milestoneRegister.Vertex;

            foreach (var edge in milestoneVertex.OutDegreeEdge)
            {
                var targetRegister = _registerManager.GetRegister(edge.To);
                var attemtpWeight  = milestoneRegister.TotalWeight + edge.Weight;
                if (attemtpWeight < targetRegister.TotalWeight)
                {
                    targetRegister.UpdateRegister(milestoneRegister, edge);
                }
            }
            milestoneRegister.Registed = true;
        }