Cod sursa(job #1687524)

Utilizator GeanaVladGeana Vlad GeanaVlad Data 12 aprilie 2016 21:50:03
Problema Hashuri Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 1.38 kb
#include <iostream>
#include<fstream>
using namespace std;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
struct nod
{
    int info;
    bool viz;
    nod *leg;
};
void sterge(int info1,nod *&prim)
{
    nod *p,*r;
    p=prim;
    if(p!=NULL&&p->info==info1) {p->leg=NULL;delete p;}
    else
    {
        while(p->leg!=NULL && p->leg->info!=info1) p=p->leg;
        if(p->leg!=NULL)
        {
            r=p->leg;
            p->leg=r->leg;
            r->leg=NULL;
            delete r;
        }
    }

}
bool gasit(int info1,nod *&prim)
{
    nod *p;
    p=prim;
    if(p!=NULL&&p->info==info1) return 1;
    else while(p!=NULL&&p->info!=info1) p=p->leg;
    if(p!=NULL) return 1;
    else return 0;
}
void creare(nod *&prim,nod *&ultim)
{
    nod *p;
    int i,n,x,nr;
    f>>n;
    for(i=1;i<=n;i++)
    {
        p=new nod;
        p->leg=NULL;
        f>>nr>>x;
        if(nr==1)
        {
           p->info=x;
           if(!p->viz)
        {if(prim==NULL)
        {
            p->viz=1;
            prim=p;
            ultim=p;
        }
        else
        {
            ultim->leg=p;
            ultim=p;
            p->viz=1;
        }}
        }
        if(nr==2)
        sterge(x,prim);
        if(nr==3) g<<gasit(x,prim)<<'\n';
    }
}
int main()
{
    nod *prim1=NULL,*ultim1=NULL;
    creare(prim1,ultim1);
}