Pagini recente » Cod sursa (job #1158262) | Cod sursa (job #3166764) | Cod sursa (job #3260857) | Cod sursa (job #2038618) | Cod sursa (job #1290716)
#include<iostream>
using namespace std;
struct nod{
int cheie;
nod *st,*dr;
} *t;
int n,k,maxim=0;
void insert(nod *&c,int k){
if(c)
if(k>c->cheie)
insert(c->dr,k);
else
if(k<c->cheie)
insert(c->st,k);
else
cout<<"Cheia exista deja";
else{
c=new nod;
c->cheie=k;
c->st=c->dr=0;
}
}
int search(nod *c,int k){
if(c){
if(k>c->cheie)
return search(c->dr,k);
else
if(k<c->cheie)
return search(c->st,k);
else
return 1;
return 0;
}
}
void findMax(nod *c,int &maxim){
if(c){
maxim=c->cheie;
findMax(c->dr,maxim);
}
}
void RSD(nod *c){
if(c){
cout<<c->cheie<<" ";
RSD(c->st);
RSD(c->dr);
}
}
void stergere(nod *c,int k){
if(c){
if(k>c->cheie)
stergere(c->dr,k);
else
if(k<c->cheie)
stergere(c->st,k);
else{
}
}
}
void meniu(){
int q=1;
int x;
while(q==1){
cout<<"Alegeti optiunea:\n";
cout<<"a)insert(t,x)\n";
cout<<"b)search(t,x)\n";
cout<<"c)findMax(t)\n";
cout<<"d)delete(t,x)\n";
cout<<"0)Iesire.\n";
cout<<"Optiunea:";
char opt;
cin>>opt;
switch(opt){
case 'a':
cout<<"Introduceti cheia nodului de inserat:";
cin>>x;
insert(t,x);
RSD(t);
break;
case 'b':
cout<<"Introduceti cheia nodului pe care il cautati:";
cin>>x;
if(search(t,x)==1)
cout<<"S-a gasit cheia.\n";
else
cout<<"Nu s-a gasit cheia.\n";
break;
case 'c':
cout<<"Maximul este:";
findMax(t,maxim);
cout<<maxim<<'\n';
break;
case 'd':
cout<<"Introduceti cheia nodului pe care doriti sa-l stergeti:";
cin>>x;
if(search(t,x)==1)
delete1(t,x);
else
cout<<"Esti cu capu...";
break;
case '0':
q=0;
break;
default:
cout<<"Valoare incorecta,reincercati.\n";
break;
}
}
}
int main(){//v=0;
meniu();
}