Pagini recente » Cod sursa (job #2036902) | Cod sursa (job #1392430) | Cod sursa (job #2264811) | Cod sursa (job #2517946) | Cod sursa (job #721451)
Cod sursa(job #721451)
#include <fstream>
#include <iostream>
using namespace std;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
struct lista{
int numar;
lista* next;
};
lista *prim;
void adauga(long x){
if (prim == NULL){
prim = new lista;
prim->numar = x;
prim->next = NULL;
}
else{
lista *l;
l = prim;
while(l->next != NULL){
if (l->numar == x)
return;
else
l = l->next;
}
if(l->numar == x)
return;
lista *p = new lista;
l->next = p;
p ->numar = x;
p->next = NULL;
}
}
void sterge(long x){
if (prim == NULL)
return;
else{
lista *l, *p;
l = prim;
p = prim;
if(prim->numar == x){
prim = prim->next;
return;
}
while(l->next != NULL){
if (l->numar == x)
p ->next = l->next;
else
{
p = l;
l = l->next;
}
}
if(l->numar == x)
p->next = NULL;
}
}
int returneaza(long x){
if (prim == NULL)
return 0;
else{
lista *l;
l = prim;
if(prim->numar == x){
return 1;
}
while(l->next != NULL){
if (l->numar == x)
return 1;
else
l = l->next;
}
if(l->numar == x)
return 1;
return 0;
}
}
int main(){
int n;
int op;
prim = NULL;
long x;
f >> n;
for(int i = 0; i < n; i++)
{
f >> op;
f >> x;
if(op == 1)
adauga(x);
else if(op == 2)
sterge(x);
else
g << returneaza(x) << "\n";
}
f.close();
g.close();
return 0;
}