Memorarea arborilor prinutilizarea referintelor ascendente
Se citeste un graf neorientat, cu n noduri, despre care stim ca este arbore.De asemenea, se citeste un numar natural 1<k<n. Se cere sa se afiseze vectorul T, corespunzator arborelui cu radacina k. De exemple , daca se introduc muchiile arborelui din figura 9.5 si se citeste k=3, atunci se obtine arborele alaturat . |
#include<iostream>
#include<fstream> using namespace std; int s[50],A[50][50],T[50],n,k; 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 df(int nod) { int k; s[nod]=1; for(k=1;k<=n;k++) if(A[nod][k]==1 && s[k]==0) { T[k]=nod; df(k); } } main() { CitireN("Graf.txt",A,n); cout<<"k="; cin>>k; df(k); for(int i=1;i<=n;i++) cout<<T[i]; } 5 1 2 1 4 1 5 5 3 |