Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void FInserareKX(Nod * &head,int k,int x)
- {
- Nod *p;
- if(head==NULL) /// Daca lista e vida
- p=new Nod,p->info=x,p->leg=NULL,head=p; /// Pun valoarea x in lista
- else
- {
- if(k<2) /// Daca e 1 sau mai mic decat 1
- p=new Nod,p->info=x,p->leg=head,head=p; /// adaug nodul in fata (aici lista nu era vida)
- else /// k>1
- {
- int nr_nod=1;
- p=head; /// p indica primul nod in lista
- Nod *ultim=head,*q;
- while(p!=NULL)
- {
- ++nr_nod;
- if(k==nr_nod) /// Daca am ajuns pe pozitia k
- {
- q=new Nod,q->info=x;
- if(p->leg==NULL) /// Daca nodul p este ultimul
- p->leg=q,q->leg=NULL; /// sdaugam acest ultim nod in lista
- else /// iar daca p nu e ultimul
- q->leg=p->leg,p->leg=q; /// sdaugam nodul in interiorul listei
- }
- ultim=p,p=p->leg; /// Memoram adresa ultimului nod si mergem la urmatorul nod din lista
- }
- if(k>nr_nod) /// Daca k depaseste numarul de noduri ale listei
- q=new Nod,q->info=x,ultim->leg=q,q->leg=NULL; /// sdaugam acest ultim nod in lista
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement