Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- for (int i = 0; i < n; i++)
- vizitat[i] = 0; //1.Toate orasele sunt nevizitate.
- noduri[0] = orasStart; //2. Adaugam in lista de noduri orasul de plecare.
- nrNoduri++;
- vizitat[orasStart] = 1; //3. Marcam orasul de plecare ca vizitat.
- while (!gasit && nrNoduri) {
- nod = noduri[0]; //4. Scoatem din fata primul nod.
- for (int i = 0; i < nrNoduri - 1; i++)
- noduri[i] = noduri[i + 1]; //5. Eliminam primul element din lista de noduri.
- nrNoduri--;
- if (nod == orasDest) {
- gasit = 1; //6. Daca testare_tinta[problema] se aplica la stare(nod), daca orasul == orasul tinta.
- }
- else {
- for (int i = 0; i < n; i++) {
- if ((a[nod][i] == 1) && (vizitat[i] == 0)) {//7. Cautam orasele conectate cu orasul nod si nevizitate.
- noduri[nrNoduri] = i; //8. Adaugam la final in lista de noduri orasul "i".
- nrNoduri++;
- vizitat[i] = 1; //9. Orasele adaugate sunt marcate ca vizitate.
- parinte[i] = nod; //10. Se retine nodul parinte pt orasele adaugate.
- }
- }
- }
- }
- /* **** Afisarea solutiei **** */
- /* formeaza vectorul solutie */
- while (orasDest != orasStart) {
- solutie[nrSol] = orasDest;
- nrSol++;
- orasDest = parinte[orasDest];
- }
- solutie[nrSol] = orasDest;
- /* afisarea vectorului solutie */
- for (int i = nrSol; i >= 0; i--) {
- std::cout << nume[solutie[i]] << " ";
- }
- _getch();
- return 0;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement