Ce se schimbă față de graful neorientat
Într-un graf orientat, legătura dintre noduri are sens. Se numește arc și se notează , cu extremitate inițială și extremitate finală.
și sunt arce diferite.
Terminologie
- Grad extern : numărul de arce care pleacă din .
- Grad intern : numărul de arce care intră în .
- Drum: succesiune de noduri în care fiecare arc respectă sensul.
- Drum elementar: drum fără noduri repetate.
- Circuit: drum în care primul nod coincide cu ultimul.
- Circuit elementar: circuit fără noduri repetate, în afară de primul și ultimul.
- Lungime: numărul de arce.
- Subgraf și graf parțial: la fel ca la neorientat (scoți noduri, respectiv doar arce).
Teorema gradelor
Suma gradelor externe egalează suma gradelor interne și amândouă dau numărul de arce. Fiecare arc pleacă exact dintr-un nod și intră exact în altul.
Tare conexitate
Un graf orientat e tare conex dacă între oricare două noduri și există drum de la la și drum de la la .
O componentă tare conexă e un subgraf tare conex maximal.
Matricea de adiacență
Nu mai e simetrică. De aceea:
- gradul extern al nodului = suma de pe linia ;
- gradul intern al nodului = suma de pe coloana ;
- numărul de arce = suma tuturor elementelor, fără să se împartă la 2.
Greșeli frecvente
- Se împarte la 2 numărul de arce.
- Se confundă gradul intern cu cel extern. Linie = extern (pleacă), coloană = intern (intră).
- Se confundă conexitatea (pe graf neorientat) cu tare conexitatea (pe orientat).
Alege limbajul în care dai examenul. Poți edita codul și îl poți rula direct aici. Programa oficiala de BAC (proba E.d) cere Pascal sau C/C++, la alegere. Python apare in manualele noi si e pus aici pentru inteles, nu ca limbaj de examen.
#include <iostream>
using namespace std;
int main() {
int n, m, a[101][101] = {0};
cin >> n >> m;
for (int k = 0; k < m; k++) {
int x, y;
cin >> x >> y;
a[x][y] = 1;
}
for (int i = 1; i <= n; i++) {
int ext = 0, intern = 0;
for (int j = 1; j <= n; j++) {
ext += a[i][j];
intern += a[j][i];
}
cout << i << ": d+=" << ext << " d-=" << intern << "\n";
}
return 0;
}