Pe scurt
Un arbore este un graf neorientat conex și fără cicluri. Lanțul 1–2–3 este arbore: orice pereche de vârfuri poate fi legată și nu există ciclu. Dacă adăugăm muchia 1–3, apare un ciclu, deci noul graf nu mai este arbore. Lecțiile „Arbore cu rădăcină”, „Reprezentarea arborelui”, „Parcurgerea arborelui”, „Arbore binar” și „Arbore binar de căutare” dezvoltă organizări și operații diferite.
În detaliu
Un arbore cu vârfuri are muchii și un singur lanț simplu între oricare două vârfuri. Eliminarea oricărei muchii îl deconectează; adăugarea unei muchii între două vârfuri deja existente creează un ciclu. Un vârf de grad 1 se numește frunză, iar un arbore cu vârfuri are cel puțin două frunze. Suma gradelor este . Orice arbore cu vârfuri se obține dintr-unul cu vârfuri adăugând o frunză, adică un vârf nou legat printr-o singură muchie de un vârf existent; de aceea numărul muchiilor crește cu 1 la fiecare vârf nou.
Calculează acum pentru și . Sunt patru vârfuri și trei muchii. Pornind din 1 ajungi la 2, apoi la 3 și 4, deci graful este conex. Nu există ciclu: vârfurile 1, 3 și 4 sunt frunze, fiecare cu gradul 1. Lanțul unic de la 3 la 4 este 3–2–4. Dacă elimini , vârful 4 se izolează; dacă adaugi , apare ciclul 1–2–3–1. Acest calcul arată două caracterizări echivalente ale arborelui: conex cu muchii și aciclic cu muchii.
Exemplul 1 — testul de arbore. Programul citește și , apoi muchiile, și afirmă că graful este arbore dacă are muchii și este conex:
#include <iostream>
using namespace std;
int a[11][11], viz[11], n, m;
void df(int u) {
viz[u] = 1;
for (int v = 1; v <= n; ++v)
if (a[u][v] && !viz[v]) df(v);
}
int main() {
cin >> n >> m;
for (int i = 0; i < m; ++i) {
int x, y;
cin >> x >> y;
a[x][y] = a[y][x] = 1;
}
df(1);
bool conex = true;
for (int i = 1; i <= n; ++i)
if (!viz[i]) conex = false;
cout << (m == n - 1 && conex ? "arbore" : "nu");
}
Pentru 4 3 cu muchiile , , se afișează arbore. Pentru 4 3 cu muchiile , , se afișează nu: numărul muchiilor este tot , dar vârful 4 rămâne izolat, iar muchiile , , formează un ciclu. Parcurgerea cu matrice cere operații; cu liste de adiacență, o parcurgere DFS sau BFS verifică existența drumului către fiecare vârf în .
Exemplul 2 — câți arbori au patru vârfuri etichetate. Graful complet are 6 muchii, iar un arbore folosește 3 dintre ele, deci există submulțimi de câte trei muchii. Toate au exact muchii, dar nu toate sunt arbori: o submulțime este arbore dacă este conexă. Cele patru submulțimi care formează un triunghi (de exemplu , , ) lasă un vârf izolat, deci rămân arbori. Numărul lor, , confirmă formula pentru arbori etichetați. Exemplul arată cât de important este să verifici și conexitatea.
Exemplul 3 — frunzele unui arbore cu grade date. Un arbore are 8 vârfuri: două de grad 3, iar celelalte de grad 1 sau 2. Suma gradelor este . Notăm cu numărul frunzelor și cu numărul vârfurilor de grad 2. Numărul de vârfuri dă , iar suma gradelor dă . Scăzând prima relație din a doua obținem , deci și . Un arbore cu aceste grade: vârfurile și sunt adiacente; are frunza și vecinul , iar are frunza ; are frunza și vecinul , iar are frunza .
Pentru admitere
Testul este necesar, dar singur nu ajunge: un graf cu trei vârfuri într-o componentă ciclică și un vârf izolat poate avea tot muchii. Verifică și conexitatea sau absența ciclurilor. Pentru un graf neorientat simplu cu , oricare două dintre condițiile „conex”, „aciclic”, „are muchii” implică a treia. Un graf aciclic cu componente conexe (o pădure) are muchii. Dacă un graf cu vârfuri are un ciclu și exact muchii, el nu poate fi conex, pentru că un graf conex cu muchii este arbore. Cele două frunze ale unui lanț cu vârfuri sunt numărul minim; un arbore în care un vârf este adiacent cu toate celelalte (o stea) are frunze.
Exemplu în formatul examenului. Un graf neorientat are 6 vârfuri, 5 muchii și cel puțin un ciclu. Care afirmație este adevărată?
- a) Graful este arbore.
- b) Graful nu este conex.
- c) Graful are exact două componente conexe.
- d) Graful are un vârf izolat.
Răspunsul corect este b). Un graf conex cu 6 vârfuri și 5 muchii este arbore, deci nu are cicluri; graful dat are un ciclu, așadar nu este conex. Varianta a) contrazice existența ciclului. Varianta c) nu rezultă obligatoriu: patru vârfuri unite prin cinci muchii ( fără o muchie) și vârfurile 5 și 6 izolate dau 6 vârfuri, 5 muchii, cicluri și trei componente. Varianta d) nu rezultă nici ea: triunghiul , , plus muchiile și are 6 vârfuri, 5 muchii, un ciclu și niciun vârf izolat.
Greșeli frecvente
- Greșit: orice graf cu muchii este arbore.Corect: trebuie verificată și conexitatea.
- Greșit: un arbore poate avea ciclu.Corect: este aciclic.
- Greșit: între două vârfuri ale arborelui sunt mai multe lanțuri simple.Corect: există exact unul.
Testează-te pe această lecție
Lecția o citești aici, fără cont. Testele pe lecții și capitole sunt în cont, cu grile originale Didaxis și explicația fiecăreia: gratuit 10 grile pe zi, fără limită cu Premium, 49 de lei pe lună pentru fiecare copil.
Înainte și după
Surse și referințe
Redactare proprie, conform programei:
- OMECI 5099/2009, anexa 5, Informatică, p. 4–5, clasa XI intensiv; rocnee.eu
- OMECI 5099/2009, anexa 5, Informatică, p. 4–5, clasa XI; plan de încadrare: OMEC 7723/2024, anexa 2, tabelele 1–25, legislatie.just.ro; filiera tehnologică: OMEC 7724/2024, anexa 4, tabelul calificării, legislatie.just.ro
- UNSTPB, Regulament admitere licență 2026, Anexa II-1.2 p. Anx II-14 și Anexa XI-3 p. Anx XI-6–7 (PDF p. 64, 120–121); admitere.pub.ro
- OMECTS 4800/2010, anexa 2, Informatică, p. 3–4; edu.ro
Documente consultate
- UNSTPB, admitere 2026, anexa XI-3, p. Anx XI-6–7
- Programa școlară de informatică, clasa a XI-a (OMECI 5099/2009, anexa 5), CNCE, p. 4–5; rocnee.eu
- Programa de bacalaureat la informatică, matematică-informatică (anexa 2 la OMECTS 4800/2010), Ministerul Educației, p. 5–6; edu.ro
- Subiectele și baremele Bacalaureatului 2026; subiecte2026.edu.ro
Desene: Redactare proprie (desen original), conform Programa școlară de informatică, clasa a XI-a (OMECI 5099/2009, anexa 5), CNCE; rocnee.eu
