Inserarea unui nou element in lista
description
Transcript of Inserarea unui nou element in lista
Inserarea unui nou element in lista
Inserarea unui nou element in lista
*Inaintea nodului cu valoare x* Dupa nodul cu valoare x
* Pe pozitia k
Inserarea unui element inaintea primului nod
• Pasii:• Se aloca memorie nodului• Se scrie informatia in
nodul nou• Nodul nou se leaga de
nodul prim• Nodul nou inserat devine
prim
• void inserare()• {• nod *p, *nou;• int y;• cout<<“y=“; cin>>y;• if (prim->info==x)• {nou=new nod;• nou->info=y;• nou->urm=prim;• prim=nou;}• }
Y prim
nouprim
prim
Inserarea inaintea nodului cu valoare x
• Pasii:• Se aloca memorie
nodului• Completam informatia
in nod• Noul nod se leaga de
nodul p• Succesorul lui p devine
noul nod
• void inserare()• {nod *p, *nou;• int y; cin>>y;
• p=prim; • while (p->urm->info!=x)• p=p->urm;• nou=new nod;• nou->info=y;• p->urm=nou->urm;• p->urm=nou;}
p->info p->urm
p
Y
nou
Inserarea dupa nodul cu valoare x• Pasii:• Se aloca memorie nodului• Se scrie informatia in nod• Nodul nou se leaga de
succesorul nodului q• Nodul q se leaga de nodul
nou • Daca nodul p a fost ultimul
nod al listei atunci nou devine ultim
• void inserare()• {nod *p, *nou;• int y; cout<<“y=“; cin>>y; q=prim;• while (q->info!=x && q) q=q->urm;• nou=new nod;• nou->info=y;• nou->urm=q->urm;• q->urm=nou;• if (q==ultim)• ultim=nou; }
q
q->urm
nou
Y q->urmnou
Inserarea unui element pe pozitia K• Pasii:• Daca k=1, se aloca memorie
nodului nou• Completam nodul cu informatie• Succesorul noului nod este primul
nod• Noul nod devine primul nod al
listei
• Daca K este diferit de 1, parcurgem lista cu ajutorul lui p
• Alocam spatiu de memorie noului nod
• Completam nodul cu informatie• Legam noul nod de succesorul lui
p• Succesorul lui p va fi noul nod
• void inserare (int k, int y)• {if (k==1)• {nou=new nod;• nou->info=y;• nou->urm=prim;• prim=nou;}• else• {p=prim;• for (int i=1; i<k-1; i++)• p=p->urm;• nou=new nod;• nou->info=y;• nou->urm=p->urm;• p->urm=nou;}}
K
Yprim primnou nou
Yp