Sunteți pe pagina 1din 10

MINISTERUL EDUCAŢIEI REPUBLICII MOLDOVA

UNIVERSITATEA TEHNICĂ A MOLDOVEI


Facultatea Calculatoare, Informatică si Microelectronică
Catedra Calcuatoare și Rețele

RAPORT
Lucrare de laborator nr. 1
La Matematici Speciale
Tema: Păstrarea grafurilor în memoria calculatorului.

A efectuat:
gr. CR-203 Rîbac Alexandru

A verificat: Gorban Maria

Chisinău 2021
1. Scopul lucrării:
 Studierea metodelor de definire a unui graf : matricea de incidență, matricea
de adiacență, liste.
 Elaborarea unor proceduri de introducere , extragere si transformare a
diferitelor forme de reprezentare internă a grafurilor cu scoaterea rezultatelor
la display si imprimantă.

2. Sarcina de bază:
1. Elaborați procedura de introducere a unui graf în memoria calculatorului în
formă de matrice de incidență, de matrice de adiacență și listă de adiacență cu
posibilități de analiză a certitudinii.
2. Elaborați proceduri de transformare dintr-o formă de reprezentare in alta.
3. Folosind procedurile enumerate , elaborați programul care vă permite:
 introducerea grafului reprezentat sub oricare forma din cele trei forme
cu posibilități de corecție a datelor.
 păstrarea grafului în memoria externă în formă de lista de adiacență.

Întrebări de control
1. Care sunt metodele de bază de reprezentare a unui graf?
2. Descrieți fiecare din aceste metode.
-matrice de adiacenţă- matrice pătrată de ordin n, în care un element a[i]
[j]=1 dacă există arc de la vârful i la vârful j, respectiv 0 în caz contrar

-matrice de incidenţă-matrice cu n linii și m coloane, în care un element b[i]


[j]=1 dacă vârful i este extremitate inițială pentru vârful j, -1 dacă vârful i este
extremitate finală pentru vârful j, respectiv 0 în caz contrar

-listă de adiacenţă-câte o listă pentru fiecare nod cu vârfurile spre care


pleacă arc

3. Cum se vor realiza aceste metode în limbajul C?


O metoda de reprezentare a unui graf neorientat foarte folosita este matricea de
adiacenta. Aceasta are proprietatea ca a[i, j] = a[j, i] oricare ar fi i, j ∈ {1, 2, 3,
…, n}, cu i ≠ j. Adica matriea de adiacenta a este simetrica fata de diagonala
principala.
Fiecare muchie a grafului poate fi privita ca o inregistrare cu doua componente: cele
doua varfuri care constituie extremitatile muchiei. Notand aceste extremitati cu x si y,
putem defini tipul de date „Muchie„, astfel:

Varianta C++:

struct Muchie{
int x, y;
}
Astfel ca putem reprezenta graful si ca un „vector de muchii”, adica un vector cu
elemente de tipul Muchie:

Varianta C++:

Muchie v[25];

Exemple de metode de păstrare a grafului în memoria


calculatorului:
-Matricea de incidență

-Matricea de Adiacență

-Lista de adiacență
3-Codul Programului
4. Afisare la ecran:

Concluzie:
La această lucrare de laborator am studiat metodele de definire a unui graf : matricea
de incidență, matricea de adiacență, liste. De asemenea am efectuat proceduri de
introducere , extragere si transformare a diferitelor forme de reprezentare internă a
grafurilor cu scoaterea rezultatelor la display si imprimantă.

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