Pagini recente » Cod sursa (job #217308) | Cod sursa (job #1753030) | Cod sursa (job #1304228) | Cod sursa (job #1360777) | Cod sursa (job #714773)
Cod sursa(job #714773)
#include<iostream>
#include<fstream>
using namespace std;
const int m=666667;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
struct nod{
int inf;
nod *adr;
};
nod *T[m];
int n;
int hash(int k){
return k%m;
}
void cauta(int k){
int j=hash(k);
nod *aux;
aux=T[j];
while(aux!=NULL){
if(aux->inf==k){
g<<"1\n";
return ;
}
else
aux=aux->adr;
}
g<<"0\n";
}
void insert(int k){
int j=hash(k);
nod *aux=new nod;
aux->inf=k;
aux->adr=T[j];
T[j]=aux;
}
void sterge(int k){
int j=hash(k);
if(T[j]==NULL)
return;
nod *aux;
aux=T[j];
if(aux->inf==k){
T[j]=T[j]->adr;
delete aux;
return ;
}
while(aux->adr!=NULL){
if((aux->adr)->inf==k){
nod *q=aux->adr;
aux->adr=(aux->adr)->adr;
delete q;
return ;
}
aux=aux->adr;
}
}
int main(){
int x;
short int op;
f>>n;
for(int i=1;i<=n;i++){
f>>op>>x;
if(op==1)
insert(x);
if(op==2)
sterge(x);
if(op==3)
cauta(x);
}
return 0;
}