Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- struct nod{int info;
- nod*st,*dr;};
- nod *rad;
- void adaugare(nod *&rad,int x)
- {
- if(rad==0){nod *p=new nod;
- p->info=x;
- p->st=0;
- p->dr=0;
- rad=p;}
- else if(x<rad->info) adaugare(rad->st,x);
- else adaugare(rad->dr,x);
- }
- void rsd(nod *c)
- {if(c)
- {cout<<c->info<<" ";
- rsd(c->st);
- rsd(c->dr);
- }
- }
- void srd(nod *c)
- {if(c)
- {srd(c->st);
- cout<<c->info<<" ";
- srd(c->dr);
- }
- }
- void sdr(nod *c)
- {if(c)
- {srd(c->st);
- srd(c->dr);
- cout<<c->info<<" ";
- }
- }
- int main()
- {
- int n,x,i;
- cout<<"Numar elemente din arbore: ";
- cin>>n;
- for(i=1;i<=n;i++)
- {
- cin>>x;
- adaugare(rad,x);
- }
- cout<<"Parcurgere RSD: "; rsd(rad); cout<<endl;
- cout<<"Parcurgere SRD: "; srd(rad); cout<<endl;
- cout<<"Parcurgere SDR: "; sdr(rad); cout<<endl;
- }
- -------------------------------------------------------------------------
- #include <iostream>
- using namespace std;
- struct nod
- {int info;
- nod*st,*dr;
- };
- nod *v;
- int n,k,s;
- void inserare(nod *&c,int k)
- {if(c)
- if(c->info==k)
- cout<<"Numarul exista deja! "<<endl;
- else
- if(c->info<k)
- inserare(c->dr,k);
- else
- inserare(c->st,k);
- else
- {c=new nod;
- c->info=k;
- c->st=c->dr=0;}
- }
- void srd(nod *c)
- {if(c)
- {cout<<c->info<<" ";
- srd(c->st);
- srd(c->dr);
- }
- }
- int cautare(nod *c,int k)
- {if(c)
- if(c->info==k)
- return 1;
- else
- if(c->info<k)
- cautare(c->dr,k);
- else
- cautare(c->st,k);
- else
- return 0;
- }
- int maxim(nod *c)
- {
- int maxim;
- while(c->dr)
- {
- c=c->dr;
- }
- maxim=c->info;
- cout<<maxim;
- }
- void doi_sub(nod* &c,nod* &f)
- {nod *aux;
- if(f->dr)
- doi_sub(c,f->dr);
- else
- {c->info=f->info;
- aux=f;
- f=f->st;
- delete aux;
- }
- }
- void stergere(nod *&c,int s)
- {nod *aux,*f;
- if(c)
- if(c->info==s)
- if(c->st==0&&c->dr==0)
- {delete c;
- c=0;
- }
- else
- if(c->st==0)
- {aux=c->dr;
- delete c;
- c=aux;}
- else
- if(c->dr==0)
- {aux=c->st;
- delete c;
- c=aux;}
- else
- doi_sub(c,c->st);
- else
- if(c->info<s)
- stergere(c->dr,s);
- else
- stergere(c->st,s);
- else
- cout<<"elementul nu exista ";
- }
- int main()
- {
- cout<<"numar noduri: ";
- cin>>n;
- for(int i=1;i<=n;i++)
- {cout<<"valoare: ";
- cin>>k;
- inserare(v,k);
- }
- srd(v);
- cout<<"Element cautat: ";
- cin>>k;
- if (cautare(v,k)) cout<<"Exista!"<<endl;
- else cout<<"Nu exista!"<<endl;
- maxim(v);
- cout<<endl;
- cout<<"Element sters: ";
- cin>>s;
- stergere(v,s);
- srd(v);
- }
- -------------------------------------------------------------------------------------
- #include <iostream>
- using namespace std;
- struct nod
- {int info;
- nod*st,*dr;
- };
- nod *v;
- int i,n,m,s[100];
- void inserare(nod *&c,int k)
- {if(c)
- if(c->info==k)
- cout<<"Numarul exista deja! "<<endl;
- else
- if(c->info<k)
- inserare(c->dr,k);
- else
- inserare(c->st,k);
- else
- {c=new nod;
- c->info=k;
- c->st=c->dr=0;}
- }
- void srd(nod *c)
- {if(c)
- {srd(c->st);
- cout<<c->info<<" ";
- srd(c->dr);
- }
- }
- int main()
- {
- cout<<"Numere de sortat: ";
- cin>>n;
- for(i=1;i<=n;i++)
- {
- cout<<"Numarul "<<i<<": ";
- cin>>s[i];
- }
- for(i=1;i<=n;i++)
- {
- inserare(v,s[i]);
- }
- srd(v);
- }
- -----------------------------------------------------------------------------------------------------------
- #include <iostream>
- using namespace std;
- struct nod
- {int info;
- nod*st,*dr;
- };
- nod *v;
- int i,k1,k2,m,n,s[100];
- void inserare(nod *&c,int k)
- {if(c)
- if(c->info==k)
- cout<<"Numarul exista deja! "<<endl;
- else
- if(c->info<k)
- inserare(c->dr,k);
- else
- inserare(c->st,k);
- else
- {c=new nod;
- c->info=k;
- c->st=c->dr=0;}
- }
- void srd(nod *c)
- {if(c)
- {srd(c->st);
- cout<<c->info<<" ";
- srd(c->dr);
- }
- }
- void verificare(nod *c)
- {if(c)
- {verificare(c->st);
- if(c->info>k1 && c->info<k2) cout<<c->info<<" ";
- verificare(c->dr);
- }
- }
- int main()
- {
- cout<<"Numere noduri: ";
- cin>>n;
- cout<<"k1= ";
- cin>>k1;
- cout<<"k2= ";
- cin>>k2;
- for(i=1;i<=n;i++)
- {
- cout<<"Numar: ";
- cin>>m;
- inserare(v,m);
- }
- srd(v);
- cout<<endl;
- verificare(v);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement