Pagini recente » Cod sursa (job #2356104) | Cod sursa (job #2490400) | Cod sursa (job #1759178) | Cod sursa (job #830971) | Cod sursa (job #1047929)
#include<iostream>
#include<fstream>
using namespace std;
struct nod
{int val;
nod *urm;
};
nod*prim;
void op1(int y)
{ if(prim==NULL)
{ prim=new nod;
prim->val=y;
prim->urm=NULL;
}
else { nod*p=prim,*q=NULL;
while(p!=NULL&&p->val<y)
{ q=p;
p=p->urm;
}
if (p==NULL) //e cel mai mare element
{ nod*nou=new nod;
nou->val=y;
nou->urm=NULL;
q->urm=nou;
}
else if(p->val>y)
{ nod*nou=new nod;
nou->val=y;
nou->urm=p;
q->urm=nou;
}
// else return;
}
}
void op2(int y)
{ if(prim->val==y)
{ nod*p=prim;
prim=prim->urm;
delete p;
}
else { nod*p=prim,*q=NULL;
while(p!=NULL&&p->val<y)
{ q=p;
p=p->urm;
}
if(p==NULL||p->val>y) return;
else if(p->val==y)
{ q->urm=p->urm;
delete p;
}
}
}
int op3(int y)
{nod*p=prim;
while(p!=NULL&&p->val<y)
p=p->urm;
if(p==NULL||p->val!=y) return 0;
else return 1;
}
int main()
{int n,i,x,y;
ifstream f("hashuri.in");
f>>n;
if(n==0) return 0;
ofstream g("hashuri.out");
for(i=0;i<n;i++)
{ f>>x>>y;
if(x==1) op1(y);
else if(x==2) op2(y);
else g<<op3(y)<<endl;
}
f.close();
g.close();
return 0;
}