MeditatiiDirect.ro Logo
MeditatiiDirect.ro
Educație la un click distanță
MeditatiiMateriiAdmitereTutorialePregatire BACSubiecte BACVariante BACBlog
InformaticăbacalaureatClasa 11dificil

Grafuri în C++ - Introducere și Parcurgeri

Tutorial complet despre grafuri: reprezentare, BFS, DFS și aplicații practice pentru BAC și olimpiade.

10 zile în urmă
0 vizualizări
45 minute

Grafuri în C++ - Introducere și Parcurgeri

Ce este un Graf?

Un graf este o structură formată din:

  • •Noduri (vârfuri) - puncte
  • •Muchii (arce) - conexiuni între noduri

Tipuri de Grafuri

  • •Neorientat: muchiile nu au direcție
  • •Orientat: arcele au direcție (săgeți)
  • •Ponderat: muchiile au costuri/greutăți

Reprezentarea Grafurilor

1. Matrice de Adiacență

1int a[101][101]; // 1 dacă există muchie, 0 altfel
2int n, m;        // n = noduri, m = muchii
3
4// Citire graf neorientat
5cin >> n >> m;
6for (int i = 1; i <= m; i++) {
7    int x, y;
8    cin >> x >> y;
9    a[x][y] = 1;
10    a[y][x] = 1; // Pentru graf neorientat
11}

2. Liste de Adiacență (Recomandat)

1#include <vector>
2vector<int> vecini[101];
3
4// Citire
5for (int i = 1; i <= m; i++) {
6    int x, y;
7    cin >> x >> y;
8    vecini[x].push_back(y);
9    vecini[y].push_back(x);
10}

Parcurgerea BFS (Breadth-First Search)

Parcurgere "în lățime" - nivel cu nivel.

1#include <queue>
2#include <vector>
3
4vector<int> vecini[101];
5bool vizitat[101];
6int distanta[101];
7
8void BFS(int start) {
9    queue<int> coada;
10    coada.push(start);
11    vizitat[start] = true;
12    distanta[start] = 0;
13    
14    while (!coada.empty()) {
15        int nod = coada.front();
16        coada.pop();
17        
18        cout << nod << " "; // Procesare nod
19        
20        for (int vecin : vecini[nod]) {
21            if (!vizitat[vecin]) {
22                vizitat[vecin] = true;
23                distanta[vecin] = distanta[nod] + 1;
24                coada.push(vecin);
25            }
26        }
27    }
28}

Utilizări BFS:

  • •Drum minim în graf neponderat
  • •Verificare conexitate
  • •Parcurgere pe niveluri

Parcurgerea DFS (Depth-First Search)

Parcurgere "în adâncime" - explorează cât mai departe.

1vector<int> vecini[101];
2bool vizitat[101];
3
4void DFS(int nod) {
5    vizitat[nod] = true;
6    cout << nod << " "; // Procesare nod
7    
8    for (int vecin : vecini[nod]) {
9        if (!vizitat[vecin]) {
10            DFS(vecin);
11        }
12    }
13}

Utilizări DFS:

  • •Componente conexe
  • •Detectare cicluri
  • •Sortare topologică

Probleme Clasice

Numărul de componente conexe

1int nrComponente = 0;
2for (int i = 1; i <= n; i++) {
3    if (!vizitat[i]) {
4        nrComponente++;
5        DFS(i);
6    }
7}

Verificare graf bipartit

1// Colorare cu BFS în 2 culori
2// Dacă reușește = bipartit

Exerciții BAC

  1. •Afișează nodurile accesibile din nodul X
  2. •Calculează distanța minimă între două noduri
  3. •Verifică dacă graful este conex
  4. •Numără componentele conexe

Pregătește grafurile pentru BAC cu un profesor de informatică specializat!

Tutorialul te-a ajutat?

Dacă ai nevoie de ajutor personalizat, găsește un profesor calificat pentru meditații

MeditatiiDirect.ro Logo
MeditatiiDirect.ro

Platforma educationala din Romania pentru meditatii particulare. Profesori verificati, recenzii reale, inscriere gratuita.

Cauta sau publica anunturi gratuit pentru toate materiile scolare.

Meditatii

  • Meditatii
  • Meditatii Matematica
  • Meditatii Informatica
  • Meditatii Romana
  • Meditatii Engleza
  • Anunturi Meditatii
  • Meditatii Online
  • Ore Online
  • Meditatii BAC
  • Meditatii Bucuresti
  • Meditatii Cluj-Napoca
  • Meditatii Timisoara
  • Meditatii Iasi
  • Meditatii Fizica
  • Meditatii Chimie
  • Meditatii Biologie

Materii Populare

  • Matematică
  • Limba Română
  • Limba Engleză
  • Informatică
  • Fizică
  • Toate Materiile →

Platforma

  • Cum functioneaza
  • Pentru elevi si parinti
  • Pentru profesori
  • Intrebari frecvente
  • Despre noi
  • Publica anunt gratuit

Resurse

  • Profesor Particular
  • Pregatire BAC
  • Admitere Facultate
  • Universitati Romania
  • Facultati Medicina
  • Facultati Informatica
  • Facultati Politehnica
  • Facultati Drept
  • Facultati Economice
  • Facultati Psihologie
  • Grile UPB
  • Grile Medicina
  • Grile Auto 2026
  • Variante BAC 2026
  • Simulare BAC 2026
  • Subiecte BAC
  • Subiecte Admitere
  • Titularizare 2025
  • Tutoriale
  • Blog educational
  • Ore Online
  • Profesori Online
  • Contact

MeditatiiDirect.ro este o platforma educationala din Romania unde gasesti meditatii si profesori particulari verificati pentru matematica, limba romana, engleza, informatica, fizica, chimie si alte materii. Disponibil in Bucuresti, Cluj-Napoca, Timisoara, Iasi si toata Romania, inclusiv meditatii online. Publica sau gaseste anunturi meditatii gratuit, programeaza ore online cu profesori verificati, cauta un profesor particular sau incepe meditatii BAC si admiterea la facultate.

© 2026 MeditatiiDirect. Toate drepturile rezervate.