Documente Academic
Documente Profesional
Documente Cultură
RAPORT
la lucrarea de laborator nr. 3
la MD
Chişinău 2023
Scopul lucrării
1. Studierea algoritmului de căutare în lărgime;
2. Elaborarea programului de căutare în lărgime.
Problema
- 1. Elaboraţi procedura care va realiza algoritmul de parcurgere a grafului în
lărgime.
- 2. Folosind procedurile din lucrările precedente, elaboraţi programul care va
permite:
o ➢ introducerea grafului în memoria calculator;
o ➢ parcurgerea grafului în lărgime;
o ➢ vizualizarea rezultatelor la display;.
Rezolvare:
#include <stdio.h>
#include <stdbool.h>
int main(){
int a[100][100] = {0};
int n, e, i, j, sursa, destinatie;
printf("Introduce nr de noduri si muchii\n");
scanf("%d %d", &n, &e);
printf("Introduce nodurile :\n");
for(i=0; i<e; i++){
scanf("%d %d", &sursa, &destinatie);
a[sursa][destinatie] = 1;
}
print(a, n);
printf("\n");
parcurgere_latime(a, n);
return 0;
}
Concluzie:
Parcurgerea în lățime a unui arbore sau graf constă în vizitarea tuturor nodurilor în
ordinea distanței lor față de nodul de pornire. Începând de la nodul de pornire, se
vizitează toți vecinii săi și apoi toți vecinii acestora și tot așa, până când toate nodurile
sunt vizitate.
Diferența principală dintre parcurgerea în lățime a unui arbore și a unui graf arbitrar
constă în modul în care sunt reprezentate. Un arbore este un graf conex fără cicluri, în
timp ce un graf arbitrar poate conține cicluri și nu trebuie să fie conex. În parcurgerea în
lățime a unui arbore, se poate începe de la orice nod și se poate utiliza o simplă listă ca
structură de date pentru a reține nodurile de procesat, în timp ce în parcurgerea în lățime
a unui graf arbitrar trebuie să se specifice un nod de pornire și se utilizează o coadă
pentru a reține nodurile de procesat.