Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream.h>
- typedef struct un_nod
- {
- int info;
- un_nod *urm;
- }TNod;
- TNod *lista;
- int n;
- TNod *creare_lista()
- {
- TNod *prim, *ultim, *p;
- int i;
- cout<<"Dati n mai mare ca 3\n n=";
- cin>>n;
- prim=new TNod;
- cin>>prim->info;
- prim->urm=NULL;
- ultim=prim;
- for(i=2;i<=5;i++)
- {
- p=new TNod;
- cin>>p->info;
- p->urm=NULL;
- ultim->urm=p;
- ultim=p;
- }
- return prim;
- }
- TNod *sterg(TNod *p, int k)
- {
- TNod *q, *r;
- int i;
- q=p;
- for(i=2;i<=k-1;i++)
- q=q->urm;
- r=q->urm;
- q->urm=r->urm;
- delete r;
- return p;
- }
- TNod *sterg_sfarsit(TNod *p)
- {
- TNod *q;
- q=p;
- while(q->urm->urm) q=q->urm;
- delete q->urm;
- q->urm=NULL;
- return p;
- }
- TNod *sterg_inceput(TNod *p)
- {
- TNod *q;
- q=p->urm;
- delete p;
- return q;
- }
- void afisare(TNod *p)
- {
- while(p)
- {
- cout<<p->info<<", ";
- p=p->urm;
- }
- cout<<"\n";
- }
- TNod *sterge_3_elemente(TNod *prim) //stergem cele mai mici 3 elemente din lista
- {
- int i,j;
- int minim;
- TNod *r, *aux;; //de la return
- r=prim;
- for(i=1;i<=3;i++)
- {
- minim=999;
- aux=r;
- while(aux)
- {
- if(aux->info<minim)
- minim=aux->info;
- aux=aux->urm;
- }
- aux=r;
- j=1;
- while(aux)
- {
- if(aux->info==minim)
- {
- break;
- }
- aux=aux->urm;
- j++;
- }
- if(j==1)
- r=sterg_inceput(r);
- else if(j==n)
- r=sterg_sfarsit(r);
- else
- r=sterg(r, j);
- cout<<"Lista dupa stergerea "<<i<<" este: ";
- afisare(r);
- }
- return r;
- }
- int main()
- {
- lista=creare_lista();
- cout<<"Lista este: \n";
- afisare(lista);
- lista=sterge_3_elemente(lista);
- cout<<"Lista la sfarsit este: \n";
- afisare(lista);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement