#include<iostream.h>
#include<conio.h>

struct nod
{int info;
nod *next;};

nod *p,*u;

void creare(int x)
{nod *q;
if(!p)
{p=new nod;
p->info=x;
u=p;}
else
{q=new nod;
q->info=x;
u->next=q;
u=q;}
u->next=0;
}

void afisare()
{nod *q;
q=p;
while(q)
{cout<<q->info<<" ";
q=q->next;}
}


void main()
{clrscr();
int n,x;
cout<<"n=";
cin>>n;
for(int i=1;i<=n;i++)
 {cout<<"x=";
  cin>>x;
  creare(x);
  }

afisare();
nod *q, *a;
cout<<"valoarea de sters ";
cin>>x;
q=p;
while(q)
{if(p->info==x)
    {a=p;
     p=p->next;
    q=p;
    delete a;}
else
  if(q->next->info==x)
     {a=q->next;
     q->next=q->next->next;
     //if(u==a) u=q;   se poate retine si ultimul daca se sterge acesta
     delete a;
     }
 else
      q=q->next;
}

cout<<endl;
afisare();
getch();
}