9.1. Flow Network
This section describes how to implement a flow network.
A flow network is a directed graph that has the following properties:
Max Flow
Let us define the MaxFlow class that keeps track of the amount of flows in every edge used to find the maximum flow:
L2: consists of (edge, flow) as the key-value pair.L3: stores the total amount of flows to the target vertices.L13-14: initializes all flows to0.
Let us define getter methods:
L5: returns the remaining residual that can be used to push more flows.L6: the edge weight represents the total capacity.
Finally, let us define setter methods:
L1: takes the path from a source and a target.L2: updates the flow of every edge in the path with the specific flow.L3: updates the overall flow.
L6: adds the specific flow to the specific edge.
Last updated
Was this helpful?