Pagini recente » Cod sursa (job #1138098) | Cod sursa (job #2933432) | Cod sursa (job #938224) | Cod sursa (job #40448) | Cod sursa (job #385238)
Cod sursa(job #385238)
#include <stdio.h>
#define MODULO 666012
int n;
struct nod
{
int info;
nod *next;
};
nod *v[MODULO];
int cauta(int nr)
{
int h, ex = 0;
h = nr % MODULO;
nod *p;
for ( p = v[h]; p && !ex; p = p-> next)
if ( p -> info == nr)
ex = 1;
return ex;
}
void adaug(int nr)
{
int h;
nod *aux;
h = nr % MODULO;
aux = new nod;
aux -> info = nr;
aux -> next = v[h];
v[h] = aux;
}
void sterge(int nr)
{
int h;
nod *p, *q, *aux;
h = nr % MODULO;
p = q = v[h];
if (p )
{
if ( p -> info == nr)
{
aux = p;
p = p -> next;
delete aux;
}
else
for ( p = p -> next; p; p = p -> next)
{
if ( p -> info == nr)
{
aux = p;
q -> next = p -> next;
delete aux;
}
q = p;
}
}
}
int main()
{
int i, op, nr, h;
freopen("hashuri.in", "r", stdin);
freopen("hashuri.out", "w", stdout);
scanf("%d", &n);
for ( i = 1; i <= n; i++)
{
scanf("%d %d", &op, &nr);
if ( op == 1)
if (!cauta(nr))
adaug(nr);
if ( op == 2)
sterge(nr);
if ( op == 3)
printf("%d\n", cauta(nr));
}
return 0;
}