Public Member Functions

GomoryHu< GR, CAP >::MinCutEdgeIt Class Reference


Detailed Description

template<typename GR, typename CAP>
class lemon::GomoryHu< GR, CAP >::MinCutEdgeIt

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>

List of all members.

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
MinCutEdgeItoperator++ ()
Graph::Arc operator++ (int)
 Postfix incrementation.

Constructor & Destructor Documentation

MinCutEdgeIt ( GomoryHu const &  gomory,
const Node &  s,
const Node &  t,
bool  side = true 
) [inline]

Constructor.

Parameters:
gomoryThe GomoryHu class. You must call its run() method before initializing this iterator.
sThe base node.
tThe node you want to separate from node s.
sideIf 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.

Member Function Documentation

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.

Warning:
This incrementation returns an Arc, not a MinCutEdgeIt, as one may expect.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines