Inaltimea unui arbore
Se da un arbore pentru care se cunoaste radacina.Se cere ca programul sa afiseze , pentru fiecare nod in parte,nivelul pe care acesta se afla. |
#include<iostream>
#include<fstream> using namespace std; int n,coada[50],s[50],i_c=1, sf_c=1,A[50][50],i,niv[50],rad; void CitireN(char Nume_fis[20],int A[50][50],int& n) { int i,j; fstream f(Nume_fis,ios::in); f>>n; while(f>>i>>j) A[i][j]=A[j][i]=1; f.close(); } void bf(int nod) { coada[i_c]=nod; s[nod]=1; while (i_c<=sf_c) { i=1; while(i<=n) { if(A[coada[i_c]][i]==1 && s[i]==0) { sf_c++; coada[sf_c]=i; s[i]=1; niv[coada[sf_c]]=niv[coada[i_c]]+1; } i++; } i_c++; } } main() { CitireN("Graf.txt",A,n); cout<<"Radacina este "; cin>>rad; bf(rad); for(int i=1;i<=n;i++) cout<<"Nodul "<<i<<" nivelul "<<niv[i]<<endl; } 5 1 2 1 4 1 5 5 3 |