Pagini recente » Cod sursa (job #880054) | Cod sursa (job #18433) | Cod sursa (job #2426756) | Cod sursa (job #2207815) | Cod sursa (job #249131)
Cod sursa(job #249131)
#include<stdio.h>
#define R 666667
struct nod{
int info;
nod*adr;
};
nod *cap[R];
void adaug(int x){
int jj=x%R;
nod*aux=new nod;
aux->info=x;
aux->adr=cap[jj];
cap[jj]=aux;
}
void elimin(int x){
int jj=x%R;
if(cap[jj]==NULL)
return;
nod*copie;
copie=cap[jj];
if (copie->info==x){
cap[jj]=copie->adr;
delete copie;
return;
}
while((copie->adr)!=NULL){
if( (copie->adr)->info==x){
nod* aux=copie->adr;
copie->adr=(copie->adr)->adr;
delete aux;
return;
}
else
copie=copie->adr;
}
}
void verific(int x){
int jj=x%R;
nod *copie;
copie=cap[jj];
while(copie!=NULL){
if(copie->info==x){
printf("1\n");
return;
}
else copie=copie->adr;
}
printf("0\n");
}
int main(){
freopen("hashuri.in", "r", stdin);
freopen("hashuri.out", "w", stdout);
int n;
scanf("%d", &n);
short int a;
int b;
for(int i=1; i<=n;++i){
scanf("%hd", &a);
scanf("%d", &b);
if(a==1)
adaug(b);
if(a==2)
elimin(b);
if(a==3)
verific(b);
}
return 0;
}