arbore partial de cost minim

Arbore partial de cost minim   #include<fstream.h>#include<iostream.h>float a[20][20],min,cost;int s[20],t[20],n,i,j,k,v; void citire(char nume[20],float a[20][20],int &n){int i,j;float c;fstream f(nume,ios::in);f>>n;for(i=1;i<=n;i++) a[i][i]=0;for(i=1;i<=n;i++) for(j=1;j<=n;j++) a[i][j]=100;while(f>>i>>j>>c) a[i][j]=a[j][i]=c;f.close();} void main(){cost=0;citire(“graf2”,a,n);cout<<n<<endl;cout<<“nodul de pornire:”;cin>>v;for(i=1;i<=n;i++) if(i==v) s[i]=0; else s[i]=v; for(k=1;k<=n-1;k++){min=100;for(i=1;i<=n;i++) if(s[i]) if(a[s[i]][i]<min) {min=a[s[i]][i]; j=i; }t[j]=s[j];cost+=a[s[j]][j];s[j]=0;for(i=1;i<=n;i++) if(s[i] && a[i][s[i]]>a[j][i]) s[i]=j;}cout<<“cost=”<<cost<<endl;for(i=1;i<=n;i++) cout<<t[i]<<” “<<endl;}

arbori de cautare

Arbori de cautare #include<iostream.h> #include<conio.h> struct nod {int nr; nod *as,*ad; }; nod *v,*man; int k; void inserare(nod*& c,int k) { if(c) if(c->nr==k) cout<<“nr inserat”<<endl; else if(c->nr<k) inserare(c->ad,k); else inserare(c->as,k); else {c=new nod;c->as=c->ad=0; c->nr=k;} } void parcurg(nod* c) {if(c) {parcurg(c->as); cout<<c->nr<<endl; parcurg(c->ad); } } void main() {v=0; do{ cout<<“k=”;cin>>k; inserare(v,k);} while(k!=0); parcurg(v); getch(); }

parcurgere arbore binar

Sa se parcurga un arbore binar   #include<iostream.h>#include<conio.h>struct nod{int nr;nod* st,*dr;};nod *c;int nrst,nrdr; void svd(nod *c){if(c){svd(c->st);cout<<c->nr;svd(c->dr);}} void vsd(nod *c){if(c){cout<<c->nr;vsd(c->st);vsd(c->dr);}} void sdv(nod *c){if(c){sdv(c->st);sdv(c->dr);cout<<c->nr;}} 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;} void main(){clrscr();c=arb();svd(c);cout<<endl;vsd(c);cout<<endl;sdv(c);cout<<endl;getch();}