Lista cu pointeri
#include #include #include typedef struct nod { int info; nod*leg; }; nod *cap,*coada; int a,b,kk; void creare() { cap=new (nod); cout<<"info utila:";cin>>cap->info; cap->leg=NULL; coada=cap; } void adaugare_sfarsit() { nod *p; p= new(nod); cout<<"informatia utila:";cin>>p->info; p->leg=NULL; coada->leg=p; coada=p; } void adaugare_inceput() { nod *q; q= new(nod); cout<<"Dati informatia utila:";cin>>q->info; q->leg=cap; cap=q; } void parcurgere() { nod *aux=cap; while(aux!=NULL) { cout<<"Informatia:"<info; aux=aux->leg; } } void stergere_la_inceput() { nod *p; p=cap; cap=cap->leg; delete(p); } void stergere_la_sfarsit() { nod *aux; aux=cap; while(aux->leg->leg!=NULL) //aux->leg!=coada aux=aux->leg; delete(coada); coada=aux; coada->leg=NULL; } void inserare_dupa_un_element(int aux) { nod *var; nod *nou; var=cap; while((var->info!=aux)&&(var)) var=var->leg; if(var==NULL) adaugare_sfarsit(); else { nou=new(nod); cout<<"dati info utila:";cin>>nou->info; nou->leg=var->leg; var->leg=nou; } } void inserare_inaintea_unui_elem(int aux) { nod *p; nod *q; nod *w; p=cap; if (p==NULL) creare(); else{ q=cap->leg; while((aux!=q->info)&&(q!=NULL)) { q=q->leg; p=p->leg; } if(q==NULL) adaugare_sfarsit(); else {w=new(nod); cout<<"dati informatia dorita:";cin>>w->info; w->leg=q; p->leg=w; } } } void inserare_inaintea_unei_pozitii(int k) { nod *p; nod *q; int i=1; p=cap; while((ileg; i++; } if(p==NULL) adaugare_sfarsit(); else { q=new(nod); cout<<"Dati informatia dorita:";cin>>q->info; q->leg=p->leg; p->leg=q; } } void main() { clrscr(); int n; cap=NULL; coada=NULL; creare(); cout<<"cate noduri vrem sa adaugam?:";cin>>n; for(int i=1;i<=n;i++) if(i%2==0) adaugare_sfarsit(); else adaugare_inceput(); parcurgere(); stergere_la_inceput(); cout<<"\n\n"; parcurgere(); if((cap!=NULL)&&(cap->leg==NULL)) {delete(cap);cap=NULL;} else stergere_la_sfarsit(); cout<<"\n\n"; parcurgere(); cout<<"\n dupa ce element(info) sa inseram?:";cin>>a; if (cap!=NULL) {inserare_dupa_un_element(a); parcurgere(); } else creare(); cout<<"\n"; cout<<"inaintea carui elem(info) doriti sa inserati?:";cin>>b; inserare_inaintea_unui_elem(b); parcurgere(); cout<>kk; inserare_inaintea_unei_pozitii(kk); parcurgere(); getch(); }