Răspuns :
Răspuns:
Nu ai fost foarte explicit însă cred că este vorba despre implementarea algoritmului de parcurgere a unui graf neorientat (algoritmul DFS - depth-first search ) și presupune parcurgerea recursivă a vecinilor fiecărui nod care nu a fost vizitat încă. Iată codul
Explicație:
//declaram global si initializam vectorul de noduri vizitate
int viz[100] = {0};
void dfs(int nodStart, int mtxAd[100][100], int n) {
//marcam nodul de start ca fiind vizitat
//la urmatoarele cautari nodStart va fi urmatorul nod din parcurgere
viz[nodStart] = 1;
//afisam nodul curent
cout << nodStart << " ";
//parcurgem matricea de adiacenta
for (int i = 0; i < n; i++) {
//daca nodul i este adiacent cu nodul curent si nu a fost vizitat
if (mtxAd[nodStart][i] == 1 && viz[i] == 0) {
//apelam recursiv dfs pentru nodul i
dfs(i, mtxAd, n);
}
}
}
int main() {
//citim numarul de noduri
int n;
cin >> n;
//declaram si citim matricea de adiacenta
int mtxAd[100][100];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cin >> mtxAd[i][j];
}
}
//citim nodul de start
int nodStart;
cin >> nodStart;
//apelam dfs pentru nodul de start
dfs(nodStart, mtxAd, n);
return 0;
}
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de sprijin, nu ezitați să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la favorite pentru acces rapid.