This iterator class lists the edges of a minimum cut found by GomoryHu. Before using it, you must allocate a GomoryHu class and call its run() method.
This example computes the value of the minimum cut separating s
from t
.
GomoryHu<Graph> gom(g, capacities); gom.run(); int value=0; for(GomoryHu<Graph>::MinCutEdgeIt e(gom,s,t); e!=INVALID; ++e) value+=capacities[e];
The result will be the same as the value returned by gom.minCutValue(s,t).
#include <lemon/gomory_hu.h>
Public Member Functions | |
MinCutEdgeIt (GomoryHu const &gomory, const Node &s, const Node &t, bool side=true) | |
operator typename Graph::Arc () const | |
operator typename Graph::Edge () const | |
MinCutEdgeIt & | operator++ () |
Graph::Arc | operator++ (int) |
Postfix incrementation. |
MinCutEdgeIt | ( | GomoryHu const & | gomory, |
const Node & | s, | ||
const Node & | t, | ||
bool | side = true |
||
) | [inline] |
Constructor.
gomory | The GomoryHu class. You must call its run() method before initializing this iterator. |
s | The base node. |
t | The node you want to separate from node s . |
side | If it is true (default) then the listed arcs will be oriented from the nodes of the component containing s , otherwise they will be oriented in the opposite direction. |
operator typename Graph::Arc | ( | ) | const [inline] |
Conversion to Arc
.
operator typename Graph::Edge | ( | ) | const [inline] |
Conversion to Edge
.
MinCutEdgeIt& operator++ | ( | ) | [inline] |
Next edge.
Graph::Arc operator++ | ( | int | ) | [inline] |
Postfix incrementation.
Arc
, not a MinCutEdgeIt
, as one may expect.