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 pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Nu ezitați să ne contactați pentru orice întrebare sau dacă aveți nevoie de asistență suplimentară. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!