2009-2010
template< class Takdata >
class Pad:public vector< int >{
public:
Takdata geefCapaciteit(){
return capaciteit;
}
void zetCapaciteit(const Takdata& _capaciteit){
capaciteit=_capaciteit;
}
protected:
Takdata capaciteit;
}
template < RichtType RT,class Takdata >
void GraafMetTakdata< RT,Takdata >::
wordMaxStroomVan(const GraafMetTakdata< RT,Takdata >& netwerk,int producent, int verbruiker){
if (!isGericht())
throw GraafExceptie("Ongerichte grafen zijn geen stroomnetwerken.");
zetAantalKnopen(netwerk.aantalKnopen());
GraafMetTakdata< GERICHT,Takdata> restnetwerk=netwerk;
Pad< Takdata> vergrotendPad;
restnetwerk.geefVergrotendPad(vergrotendPad,producent,verbruiker);
while(vergrotendPad.size() !=0 ){
restnetwerk-=vergrotendPad;
*this+=vergrotendPad;
restnetwerk.geefVergrotendPad(vergrotendPad,producent,verbruiker);
}
}
Bedenk de nodige extra code om dit te laten werken, en controleer je antwoord op punt 1.
Formuleer eerst duidelijk wat eventueel nog te schrijven lidfuncties allemaal
veronderstellen als precondities.
Bijkomende opgave Als je een bipartite graaf hebt kan je proberen zoveel mogelijk paren te vormen. Doe dit. Het formaat van het bestand is: