Pagini recente » Cod sursa (job #885895) | Cod sursa (job #479986) | Cod sursa (job #3154348) | Cod sursa (job #1579636) | Cod sursa (job #32492)
Cod sursa(job #32492)
#include <stdio.h>
#define maxn 999983
struct nod { int x; nod *next;};
nod *H[maxn];
int hash(int val)
{
return val%maxn;
}
int insert(int val)
{
int poz=hash(val);
nod *p=new nod;
p->x=val;
p->next=H[poz];
H[poz]=p;
}
int find(int val)
{
int poz=hash(val);
for(nod *p=H[poz];p;p=p->next)
if(p->x==val) return 1;
return 0;
}
int erase(int val)
{
int poz=hash(val);
nod *p=H[poz];
if(p->x==val)
{
nod *r=p;
p=p->next;
H[poz]=p;
delete r;
return 1;
}
for(;p->next;p=p->next)
if(p->next->x==val)
{
nod *r=p->next;
p->next=p->next->next;
delete r;
return 1;
}
return 0;
}
int main()
{
insert(35);
insert(87);
insert(23);
printf("%d %d\n", find(35), find(36));
printf("%d %d\n", find(87), find(88));
printf("%d %d\n", find(23), find(25));
erase(35);
printf("%d\n", find(35));
for(int i=1;i<=1000;i++)
for(int j=1;j<=1000;j++) insert(i+j);
for(int i=1;i<=1000;i++)
for(int j=1;j<=1000;j++) find(i+j),erase(i+j);
return 0;
}