Pagini recente » Cod sursa (job #313455) | Cod sursa (job #699641) | Cod sursa (job #1321507) | Cod sursa (job #2178419) | Cod sursa (job #1764003)
#include <stdio.h>
#include <stdlib.h>
#define MOD 666013
typedef struct Nod
{
int info;
struct Nod *adr;
}nod;
nod* hash[MOD];
inline int caut(int x)
{
nod *i;
for(i=hash[x%MOD];i;i=i->adr)
if(i->info==x)
break;
return (i>0);
}
inline void add(int x)
{
if(!caut(x))
{
nod *c=(nod *) malloc(sizeof(nod));
c->info=x;
c->adr=hash[x%MOD];
hash[x%MOD]=c;
}
}
inline void sterg(int x)
{
nod *i=hash[x%MOD];
if(i)
{
if(i->info==x)
{
hash[x%MOD]=i->adr;
free(i->adr);
}
else
{
while(i->adr && i->adr->info!=x)
i=i->adr;
if(i->adr)
i=i->adr->adr;
free(i->adr);
}
}
}
int main()
{
FILE *fin,*fout;
fin=fopen("hashuri.in","r");
fout=fopen("hashuri.out","w");
int n,i,val,x;
fscanf(fin,"%d",&n);
for(i=0;i<n;i++)
{
fscanf(fin,"%d%d",&val,&x);
switch(val)
{
case 1: add(x);break;
case 2: sterg(x);break;
case 3: fprintf(fout,"%d\n",caut(x));break;
}
}
return 0;
}