#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();
}