Graphe Lire
unknown
c_cpp
3 years ago
938 B
3
Indexable
Never
Graphe Graphe::Lire(const string nom) { Graphe resultat; ifstream fichier(nom); string temp; while (getline(fichier, temp)) { stringstream ligne(temp); string source; ligne >> source; itNoeud it = resultat.noeuds.find(source); Noeud* sommetSource = (it == resultat.noeuds.end()) ? NULL : it->second ; if (sommetSource == NULL) sommetSource = new Noeud(source); resultat.noeuds[source] = sommetSource; string dest; int poids; while (ligne >> dest >> poids) { itNoeud it = resultat.noeuds.find(dest); Noeud* sommetDest = (it == resultat.noeuds.end()) ? NULL : it->second ; if (sommetDest == NULL) { sommetDest = new Noeud(dest); resultat.noeuds[dest] = sommetDest; } sommetSource->arcs[dest] = new Arc(poids, sommetDest); sommetDest->indegree++; } } fichier.close(); return resultat; }