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; }
public GetPathsResult(List <List <List <TEdgeId> > > pathsList, GraphContainer <TNodeId, TNodeData, TEdgeId, TEdgeData> graph) { PathsList = pathsList; Graph = graph; }