MouseyN1

Vector de tati - descendenti

Feb 11th, 2014
281
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.16 KB | None | 0 0
  1. /*
  2. Din fisierul arbore.in se citeste n, apoi n noduri ce alcatuiesc vectorul de tati.
  3. Afisati in fisierul arbore.out:
  4. - nodul radacina
  5. - nodurile care au ca radacina un nod x citit
  6. - nodurile terminale
  7. - matricea de adiacenta
  8. */
  9.  
  10. #include <fstream>
  11. using namespace std;
  12. ifstream fin("arbore.in");
  13. ofstream fout("arbore.out");
  14. int viz[100], a[100][100];
  15. int main()
  16. {
  17.     int n, i, j, T[100], x;
  18.     fin >> n >> x;
  19.     for(i = 1; i <= n; i++)
  20.     {
  21.         fin >> T[i];
  22.         if(!T[i]) fout << "Nodul radacina este: " << i;
  23.     }
  24.     fout << endl << "Descendentii directi ai nodului " << x << ": ";
  25.     for(i = 1; i <= n; i++)
  26.         if(T[i] == x)
  27.             fout << i << ' ';
  28.     fout << endl << "Nodurile terminale sunt: ";
  29.     for(i = 1; i <= n; i++)
  30.         viz[T[i]] = 1;
  31.     for(i = 1; i <= n; i++)
  32.         if(!viz[i])
  33.             fout << i << ' ';
  34.     fout << endl << "Matricea de adiacenta este: " << endl;
  35.     for(i = 1; i <= n; i++)
  36.     {
  37.         a[T[i]][i] = a[i][T[i]] = 1;
  38.     }
  39.     for(i = 1; i <= n; i++)
  40.     {
  41.         for(j = 1; j <= n; j++)
  42.             fout << a[i][j] << ' ';
  43.         fout << endl;
  44.     }
  45.     return 0;
  46. }
Advertisement
Add Comment
Please, Sign In to add comment