Porniți exercițiile de la scheletul de cod oferit.

1. Se citesc din fişierul graf.in M muchii ale unui graf neorientat cu N vârfuri. Folosind scheletul de cod dat implementaţi următoarele cerinţe:

  • TODO0: Studiati reprezentarea grafului în scheletul de cod ataşat.
  • TODO1: Adăugaţi muchiile în structura grafului. În scheletul de cod graful este reprezentat ca un vector de liste de adiacenţă.
  • TODO2: Implementaţi parcurgerea BFS sau DFS a grafului pornind dintr-un nod ales.
  • Datele se vor citi dintr-un fișier cu următorul format:
    • pe prima linie: numărul de varfuri N și de muchii M ale grafului
    • pe următoarea linie: nodul de start BFS si nodul de start DFS
    • pe următoarele M linii: perechi de noduri (u,v) pentru care există muchii în graf
  • hints: În cadrul scheletului, s-au folosit următoarele clase din STL:
  • Vector pentru care aveţi nevoie de următoarele funcţii:
    • v.size() - întoarce numărul de elemente din vector
    • v[i] (operatorul []) - întoarce elementul de pe poziția i
    • Un vector se poate sorta cu ajutorul funcției sort din STL.
    • Exemplu de sortare: std::sort(v.begin(),v.end());
  • Exemplu de parcurgere și afișare a elementelor dintr-un vector STL folosind indecsi:
    for (unsigned int i = 0; i < v.size(); ++i) 
    {
        std::cout << v[i] << std::endl;
    }
  • Exemplu de parcurgere și afișare a elementelor dintr-un vector STL folosind iteratori:
    for (std::vector<int>::iterator it = v.begin(); it != v.end(); ++it) 
    {
        std::cout << *it << std::endl;
    }
  • Exemplu de parcurgere și afișare a elementelor dintr-un vector STL folosind funcțiacopy din STL.
   std::ostream_iterator<int> out_it(std::cout, std::endl);
   std::copy(v.begin(), v.end(), out_it);
sd-ca/2016/taskuri/task-08.txt · Last modified: 2017/02/04 23:01 by alexandru.olteanu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0