//-pentru reprezentarea/implementarea a unui arbore
<iostream> using namespace std; void citire() { int n; cin>>n; for(int i=1;i<=n-1;i++) { cin>>x>>y; a[x][y]=1; a[y][x]=1; d[x]++; d[y]++; } } int parinte(int x) { for(int j=1;j<=n;j++) if(a[x][j]!=0) return j; return 0; } void prufferr() { int x=frunza(); int y=parinte(x); int k=1; int i=1; while(k<n-1) { t[i]=x; pt[i]=y; d[x]--;d[y]--; a[x][y]=o; a[y][x]=0; x=frunza(); y=parinte(x); k++ } } main() { citire(); prufferr(); for( int i=1;i=n-1;++) cout<<pf[i] } //-det arboreli asociat
Kruskal Void citire() . . . Void sortare() {muchie aux; For i=1,n For j=1,n If(v[i][j]
Exemplu Kruskal
Acesta este graful original. Numerele de pe muchii reprezint
costul acestora. Nici o muchie nu este evideniat.
AD i CE sunt cele mai scurte muchii, de cost 5, iar AD a fost
arbitrar aleas, deci este evideniat.
CE este muchia de cost minim care nu formeaz un ciclu, deci
este evideniat.
Urmtoarea muchie, DF, de cost 6, este evideniat n acelai fel.
Urmtoarele muchii de cost minim sunt AB i BE, de cost
7. AB este aleas arbitrar i este evideniat. Muchia BD este marcat cu rou, deoarece ar forma ciclul ABD dac ar fi aleas.
Procesul continu cu evidenierea urmtoarei muchii, BE, de cost
7. Mai multe muchii sunt marcate cu rou la acest pas: BC, deoarece ar forma ciclul BCE, DE, deoarece ar forma ciclul DEBA i FE deoarece ar forma ciclul FEBAD.
n sfrit, procesul se ncheie cu muchia EG de cost 9, iar