Upload
alexbobei
View
218
Download
0
Embed Size (px)
Citation preview
8/18/2019 Inserarea Unui Element in Lista
1/6
Inserarea unui nou element inlista
8/18/2019 Inserarea Unui Element in Lista
2/6
Inserarea unui nou element inlista
*Inaintea nodului cu valoare x
* Dupa nodul cu valoare x * Pe pozitia k
8/18/2019 Inserarea Unui Element in Lista
3/6
Inserarea unui element inaintea primului nod
• Pasii:• Se aloca memorie nodului
• Se scrie informatia innodul nou
•
Nodul nou se leaga denodul prim
• Nodul nou inserat devine prim
•
void inserare()• {
• nod *p, *nou;
• int y;
• couty;
• if (prim->info==x)
• {nou=new nod;
• nou->info=y;
• nou->urm=prim;
• prim=nou;}
• }
Y prim
nou
primprim
8/18/2019 Inserarea Unui Element in Lista
4/6
Inserarea inaintea nodului cuvaloare x
•
Pasii:• Se aloca memorie
nodului
• Completam informatia
in nod• Noul nod se leaga de
nodul p
• Succesorul lui p devinenoul nod
• void inserare()
• {nod *p, *nou;• int y; cin>>y;
• p=prim;
• wi!e (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
8/18/2019 Inserarea Unui Element in Lista
5/6
Inserarea dupa nodul cu valoare x
• Pasii:
• Se aloca memorie nodului• Se scrie informatia in nod
• Nodul nou se leaga desuccesorul nodului q
• Nodul q se leaga de nodul
nou
• Daca nodul p a fost ultimulnod al listei atunci noudevine ultim
• void inserare()
• {nod *p, *nou;
• int y; couty;#=prim;
• wi!e (#->info"=x $$ #) #=#->urm;
• nou=new nod;
• nou->info=y;
• nou->urm=#->urm;
• #->urm=nou;
• if (#==u!tim)
• u!tim=nou; }
q
q->urm
nou
Y q->urmnou
8/18/2019 Inserarea Unui Element in Lista
6/6
Inserarea unui element pe pozitia K • Pasii:
• Daca k=! se aloca memorienodului nou
• Completam nodul cu informatie
• Succesorul noului nod este primulnod
• Noul nod devine primul nod allistei
• Daca K este diferit de ! parcurgem lista cu a"utorul lui p
• #locam spatiu de memorie nouluinod
• Completam nodul cu informatie
• $egam noul nod de succesorul lui p
• Succesorul lui p va % noul nod
• void inserare (int %, int y)
• {if (%==&)
• {nou=new nod;
• nou->info=y;
• nou->urm=prim;
• prim=nou;}
• e!se
• {p=prim;
• for (int i=&; iurm;
• nou=new nod;
• nou->info=y;
• nou->urm=p->urm;
• p->urm=nou;}}
K
Y prim primnou nou
Y p