Nivele

Intr-un arbore cu rădăcină, spunem că rădăcina este pe nivelul 1, fiii rădăcinii pe nivelul 2, fiii fiilor rădăcinii pe nivelul 3, etc. Cerința Se dă vectorul de tați al unui arbore cu rădăcină cu n noduri și k noduri din arbore. Determinați pentru fiecare dintre cele k noduri nivelul pe care se află. Date … Read more

Arbore

Se dau cele n-1 muchii ale unui arbore cu n noduri și un nod k . Afișați vectorul de tați al arborelui cu rădăcina în k. Date de intrare Fișierul de intrare arbore.in conține pe prima linie numerele n k, Următoarele n-1 linii vor conține câte o pereche i j, reprezentând muchiile arborelui. Date de … Read more

constructie vectorul TATA

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. 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, … Read more

arbori binari vector TATA

Se citeste un arbore cu n varfuri dat prin vectorul TATA. 1) Sa se afiseze muchiile arborelui 2) Sa se construiasca si sa se afiseze matricea de adiacenta a arborelui. Observatie: vectorul TATA  precizeaza pentru fiecare varf i, nodul TATA[i] care reprezinta parintele sau Pentru arborele din imagine vectorul TATA este: 0,1,2,1. #include<iostream.h>int n, t[20], … Read more

arbore partial de cost minim algoritmul lui Kruskal

Sa se determine un arbore partial de cost minim folosind algoritmul Kruskal Pentru memorarea muchiilor grafului si a costurilor acestora se defineste o structura de date cu trei campuri (nodurile muchiei si costul ei) pe care o numim muchie #include<iostream.h>#include<fstream.h>typedef struct{int u,v,c;} muchie;int l[30],n,m;muchie e[30];void citire(){int i;fstream f(“apm.txt”, ios::in);f>>n;f>>m;for(i=1;i<=m;i++)f>>e[i].u>>e[i].v>>e[i].c;f.close();} void main(){int k,ultim,i,u,v,ct,ind,ms,lu,lv;muchie aux;citire();for(i=1;i<=n;i++)l[i]=i;ultim=m;while(ultim>1){k=0;for(i=1;i<=ultim-1;i++)if(e[i].c>e[i+1].c){aux=e[i];e[i]=e[i+1];e[i+1]=aux;k=1;}ultim=k;}cout<<“APM contine muchiile:”<<endl;ct=0;ms=0;ind=0;while(ms<n-1){doind++;while(l[e[ind].u]==l[e[ind].v]);u=e[ind].u;lu=l[u];v=e[ind].v;lv=l[v];cout<<u<<”  … Read more

numarul de nivele ale unui arbore

Numarul  de nivele ale unui arbore   #include<iostream.h>#include<conio.h>#include<stdio.h>struct nod{int nr;nod* st,*dr;};nod *c;int coada[20],s[20],i,sf;nod *r[20]; nod *arb(){int n;nod *c;cout<<“n=”;cin>>n;if(n){c=new nod;c->nr=n;c->st=arb();c->dr=arb();return c;}else return 0;} int max(int x,int y){if (x>y) return x;else return y;} int h(nod *r){if (r==0) return 0;else return 1+max(h(r->st),h(r->dr));} int h1(nod *r){if(r==0) return 0;else return 1+h1(r->st);} int h2(nod *r){if(r==0) return 0;else return 1+h2(r->dr);} void main(){int … Read more

codul pruffer

Codul pruffer #include<iostream.h>#include<conio.h>int t[50],pt[50],i,j,k,n,gasit; void main(){ cout<<“n=”;cin>>n; for(i=1;i<=n-2;i++) {cout<<“pt[“<<i<<“]=”; cin>>pt[i]; }pt[n-1]=n;for(i=1;i<=n-1;i++) {k=1; do {gasit=0; for(j=1;j<=i-1;j++) if(t[j]==k) gasit=1; if(!gasit) for(j=i;j<=n-1;j++) if(pt[j]==k) gasit=1; if(gasit) k++; } while(gasit); t[i]=k;}for(i=1;i<=n-1;i++) cout<<t[i]<<” “;cout<<endl;getch();}

arborescenta

Arborescenta #include<fstream.h>#include<conio.h>int a[20][20],b[20][20],s[20],gasit,ok,radacina,n,i,j,suma,r; void citire(char nume[10],int a[20][20],int& n){ fstream f(nume,ios::in); int i,j; f>>n; while (f>>i>>j) a[i][j]=1; f.close();} void df(int nod){ int k;s[nod]=1; for(k=1;k<=n;k++) if(a[nod][k]==1 || a[k][nod]==1) {a[k][nod]=a[nod][k]=0; if (s[k]==0) df(k); else gasit=1; }} void df1(int nod){ int k;s[nod]=1; for(k=1;k<=n;k++) if (a[nod][k]==1 && s[k]==0) df1(k);} void main(){ citire(“graf.txt”,a,n);cout<<“n->”<<n<<endl; for(i=1;i<=n;i++) for(j=1;j<=n;j++) b[i][j]=a[i][j]; df(1); for(i=1;i<=n;i++) suma+=s[i]; if(suma!=n) cout<<“nu … Read more