Example #1
0
 public Graph(GraphContainer <TNodeId, TNodeData, TEdgeId, TEdgeData> container)
 {
     NodeIdToNode = new Dictionary <TNodeId, Node <TNodeData, TNodeId> >();
     EdgeIdToEdge = new Dictionary <TEdgeId, Edge <TEdgeData, TEdgeId, TNodeId> >();
     Adj          = new Dictionary <TNodeId, List <Edge <TEdgeData, TEdgeId, TNodeId> > >();
     reverseAdj   = new Dictionary <TNodeId, List <Edge <TEdgeData, TEdgeId, TNodeId> > >();
     foreach (var node in container.Nodes)
     {
         NodeIdToNode[node.Id] = node;
         Adj[node.Id]          = new List <Edge <TEdgeData, TEdgeId, TNodeId> >();
         reverseAdj[node.Id]   = new List <Edge <TEdgeData, TEdgeId, TNodeId> >();
     }
     foreach (var edge in container.Edges)
     {
         EdgeIdToEdge[edge.Id] = edge;
         Adj[edge.Source].Add(edge);
         reverseAdj[edge.Target].Add(edge);
     }
 }
 public MaxFlowResult(long maxFlowAmount, Dictionary <TEdgeId, long> edgeToFlow, GraphContainer <TNodeId, TNodeData, TEdgeId, TEdgeData> container)
 {
     MaxFlowAmount  = maxFlowAmount;
     EdgeToFlow     = edgeToFlow;
     GraphContainer = container;
 }
Example #3
0
 public GetPathsResult(List <List <List <TEdgeId> > > pathsList, GraphContainer <TNodeId, TNodeData, TEdgeId, TEdgeData> graph)
 {
     PathsList = pathsList;
     Graph     = graph;
 }