All pastes #255497 Raw Edit

Anonymous

public cpp v1 · immutable
#255497 ·published 2006-11-23 01:17 UTC
rendered paste body
template <typename T>void Graphe<T>::Floyd(vector<vector<int>> CheminCourt, vector<vector<int>> PointChemin) const {map<T, list<pair<T, int>>>::iterator it1 = leGraphe.begin();int sommet = 0;while (it1 != leGraphe.end()) {	list<pair<T, int>>::iterator it2 = (*it1).second.begin();	int voisin = 0;	while (it2 != (*it1).second.end()) {		//si aucun chemin n'existe entre x,y alors 0		if ( sommet != (int)(*it2).first - 'A') ) {			CheminCourt.at(sommet).at(voisin) = INFINI;			PointChemin.at(sommet).at(voisin) = -1;		} else {			CheminCourt.at(sommet).at(voisin) = (*it2).second;			PointChemin.at(sommet).at(voisin) = (int)(*it2).first - 'A';		}		it2++;		voisin++;	}	CheminCourt[sommet][sommet] = INFINI; // pas de chemin à soi-même	it1++;	sommet++;}  for(int sommet = 0; sommet < n; sommet++)    for(int voisin = 0; voisin < n; voisin++)      for(int suivant = 0; suivant < n; suivant++)		          if(CheminCourt.at(voisin).at(sommet) + CheminCourt.at(sommet).at(suivant)                                     < CheminCourt.at(voisin).at(suivant)) {          // conserver chemin plus court          CheminCourt.at(voisin).at(suivant) =                CheminCourt.at(voisin).at(sommet) + CheminCourt.at(sommet).at(suivant);          PointChemin.at(voisin).at(suivant) = sommet;        }//if}// Floyd;#endif   // CLASSE_GRAPHE