Se citeste un arbore cu n varfuri dat prin vectorul muchiilor si apoi se citeste varful radacina. Sa se construiasca si sa se afiseze vectorul TATA.

vector_tata2noduri1

Vectorul de tati de declara astfel: T[i]=parintele(tata) nodului i.

Pentru arborele din figura vectorul TATA este 0,1,2,1 si radacina este 1.Muchiile care se citesc sunt 1-2,2-1,1-4

#include<iostream.h>
int n, r, T[20], a[20][20], p[20];void citire()
{ int i,x,y;
  cout<<"nr de noduri: ";cin>>n;
  cout<<"cititi muchiile de forma x-y : "<<endl;
  for(i=1;i<=n-1;i++)
    { cin>>x>>y;
      a[x][y]=a[y][x]=1;;
    }
  cout<<"dati radacina : "<<endl;
  cin>>r;
}void BF(int r)
{  int s,d,i,x[100];
   d=s=1;
   x[1]=r; p[r]=1;
   while (s<=d)
   { for(i=1;i<=n;i++)
      if(a[x[s]][i] &&!p[i])
    { d++; x[d]=i;
      p[i]=1; T[i]=x[s];
    }
     s++;
   }
}void main()
{ int i;
  citire();
  BF(r);
  cout<<"vectorul TATA este :"<<endl;
  for(i=1;i<=n;i++) cout<<T[i]<<" ";
}