Sunteți pe pagina 1din 6

Ministerul Educaţiei, Culturii și Cercetării al Republicii Moldova

Universitatea Tehnică a Moldovei


Departamentul Ingineria Software şi Automatică

RAPORT
Lucrarea de laborator nr. 3
la Matematici Speciale

A efectuat: Marius Corcodel


st. gr. TI-206

A verificat: Inga Lisnic

Chişinău – 2021
Tema: ALGORITMUL DE CĂUTARE ÎN ADÂNCIME.

Scopul lucrării :
 Studierea algoritmului de căutare în adâncime;
 Elaborarea programului de căutare în adâncime.

Codul (textul) programului in limbajul C++:

#include <iostream>
using namespace std;

void print(int** edges, int n, int sv, bool* visited)


{
cout << sv <<" ";
visited[sv] = true;
for (int i = 0; i < n; i++)
{
if (i == sv)
{
continue;
}
if (edges[sv][i] == 1)
{
if (visited[i])
{
continue;
}
print(edges, n, i, visited);
}
}
}

int main()
{
int n;
int e;
cout << "Nr. de varfuri: ";
cin >> n;
cout << "\nNr. de muchii: ";
cin >> e;
cout << "\n";
int** edges = new int* [n];
for (int i = 0; i < n; i++)
1
{
edges[i] = new int[n];
for (int j = 0; j < n; j++)
{
edges[i][j] = 0;
}
}
for (int i = 0; i < n; i++)
{
int f, s;
cin >> f>>s;
edges[f][s] = 1;
edges[s][f] = 1;
}
bool* visited = new bool[n];
for (int i = 0; i < n; i++)
{
visited[i] = false;

}
cout << "\nAlgoritmul de parcurgere a grafului in
adancime.\nRaspuns: ";
print(edges, n,0, visited);
}

2
3
1. Definiţi structurile principale de date: liste, fire de aşteptare, stive, arbori.
Listă – o multime de siruri finite de elemente de tipul declarant.
Fire de asteptare - (FA, rând, coadă, şir de aşteptare) folosite pentru a realiza
algoritmul de prelucrare a elementelor listei în conformitate cu care elementele
vor fi eliminate din listă în ordinea în care au fost incluse în ea.
Stive - se utilizează pentru a realiza algoritmul de prelucrare a elementelor
după principiul "ultimul sosit - primul prelucrat" (LIFO).
Arbori - o mulţime de structuri fiecare din care va consta dintr-un obiect de
bază numit vârf sau rădăcina arborelui dat şi o listă de elemente din mulţimea
definită, care (elementele) se vor numi subarbori ai arborelui dat.

2. Care sunt operaţiile definite pentru aceste structuri de date?


Pentru listă sunt definite noţiunile începutul, sfârşitul listei şi respectiv primul şi
ultimul element, de asemenea elementul curent ca şi predecesorul şi succesorul
elementului curent.

Operaţiile de bază cu firele de aşteptare:


 Formarea unui FA vid;
 Verificare dacă FA nu este vid;
 Alegerea primului element cu eliminarea lui din FA;
 Introducerea unei valori noi în calitate de ultim element al FA.
Operaţiile de bază cu stivele sunt următoarele:
 Formarea unei stive vide;
 Verificare la vid;
 Alegerea elementului din topul stivei cu sau fără eliminare;
4
 Introducerea unui element nou în topul stivei.
Operaţiile de bază pentru arbori vor fi:
 Formarea unui arbore trivial;
 Alegerea sau înlocuirea rădăcinii arborelui;
 Alegerea sau înlocuirea listei rădăcinilor subarborilor;
 Operaţiile de bază care sunt valabile pentru liste.
3. Care este principiul de organizare a prelucrării elementelor în firele de
aşteptare şi în stive?
Fire de astepare : primul sosit – primul servit;
Stive : ultimul sosit – primul servit;

4. Definiţi noţiunea de parcurgere a grafului în adâncime.


Parcurgerea grafului in adâncime – parcurgerea unui graf in sens direct, in
preordine, prin care vârfurile grafului vor fi vizitate in conformitate cu
următoarea procedură recursivă.

5. Ce fel de structuri de date se vor utiliza în căutarea în adâncime?


În căutarea în adâncime se vor utiliza următoarele structure de date:
 Liste
 Fire de asteptare
 Stive
 Arbori

6. Exemplificaţi utilizarea algoritmului de căutare în adâncime.


La căutarea în adâncime (parcurgerea unui graf în sens direct, în preordine)
vârfurile grafului vor fi vizitate în conformitate cu următoarea procedură
recursivă:
mai întâi va fi vizitată rădăcina arborelui q, apoi, dacă rădăcina arborelui nu
este frunză - pentru fiecare fiu p al rădăcinii q ne vom adresa recursiv
procedurii de parcurgere în adâncime pentru a vizita vârfurile tuturor
subarborilor cu rădăcina p ordonate ca fii ai lui q.

Analiza rezultatelor și concluzii


 In urma efectuării lucrării de laborator am studiat algoritmul de căutare în
adâncime.
 Am elaborat programul de căutare în adâncime.
 Am studiat cum se elaboreaza procedurile de introducerea grafului în
calculator, parcurgerea grafului în lărgime și extragerea datelor la display.
5

S-ar putea să vă placă și