Pagini recente » Cod sursa (job #2472328) | Cod sursa (job #742034) | Cod sursa (job #332115) | Cod sursa (job #683792) | Cod sursa (job #1312976)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
unsigned long n,m=573571,x;
struct nod {unsigned long info;
nod *next;} *p, *h[573571],*q;
void insert()
{
unsigned long poz=x%m;
if(h[poz]==NULL)
{
p=new nod;
p->info=x;
p->next=NULL;
h[poz]=p;
}
else
{
p=h[poz];
while(p->next!=NULL && p->info!=x)
p=p->next;
if(p->info!=x)
{
q=new nod;
q->info=x;
q->next=NULL;
p->next=q;
}
}
}
void erase()
{
unsigned long poz=x%m;
p=h[poz];
if(p->info==x)
{
p=p->next;
h[poz]=p;
}
else
{
q=p;
p=p->next;
while(p->next!=NULL && p->info!=x)
{
q=p;
p=p->next;
}
if(p->info==x)
q->next=p->next;
}
}
bool query()
{
unsigned long poz=x%m;
p=h[poz];
while(p!=NULL)
if(p->info==x)
return 1;
return 0;
}
int main()
{
f>>n;
unsigned long i;
int op;
for(i=0;i<=m-1;i++)
h[i]=NULL;
for(i=1;i<=n;i++)
{
f>>op>>x;
if(op==1)
insert();
if(op==2)
erase();
if(op==3)
g<<query()<<endl;
}
for(i=0;i<=m-1;i++)
if(h[i]!=NULL)
{
while(h[i]!=NULL)
{
cout<<h[i]->info<<' ';
h[i]=h[i]->next;
}
cout<<endl;
}
return 0;
}