Advertisement
Guest User

Untitled

a guest
Mar 26th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. for (int i = 0; i < n; i++)
  2. vizitat[i] = 0; //1.Toate orasele sunt nevizitate.
  3.  
  4. noduri[0] = orasStart; //2. Adaugam in lista de noduri orasul de plecare.
  5. nrNoduri++;
  6. vizitat[orasStart] = 1; //3. Marcam orasul de plecare ca vizitat.
  7.  
  8. while (!gasit && nrNoduri) {
  9. nod = noduri[0]; //4. Scoatem din fata primul nod.
  10.  
  11. for (int i = 0; i < nrNoduri - 1; i++)
  12. noduri[i] = noduri[i + 1]; //5. Eliminam primul element din lista de noduri.
  13.  
  14. nrNoduri--;
  15. if (nod == orasDest) {
  16. gasit = 1; //6. Daca testare_tinta[problema] se aplica la stare(nod), daca orasul == orasul tinta.
  17. }
  18. else {
  19. for (int i = 0; i < n; i++) {
  20. if ((a[nod][i] == 1) && (vizitat[i] == 0)) {//7. Cautam orasele conectate cu orasul nod si nevizitate.
  21. noduri[nrNoduri] = i; //8. Adaugam la final in lista de noduri orasul "i".
  22. nrNoduri++;
  23. vizitat[i] = 1; //9. Orasele adaugate sunt marcate ca vizitate.
  24. parinte[i] = nod; //10. Se retine nodul parinte pt orasele adaugate.
  25. }
  26. }
  27. }
  28. }
  29.  
  30. /* **** Afisarea solutiei **** */
  31. /* formeaza vectorul solutie */
  32. while (orasDest != orasStart) {
  33. solutie[nrSol] = orasDest;
  34. nrSol++;
  35. orasDest = parinte[orasDest];
  36. }
  37. solutie[nrSol] = orasDest;
  38.  
  39. /* afisarea vectorului solutie */
  40. for (int i = nrSol; i >= 0; i--) {
  41. std::cout << nume[solutie[i]] << " ";
  42. }
  43. _getch();
  44. return 0;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement