Inserarea unui nou element in lista

6
Inserarea unui nou element in lista

description

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 - PowerPoint PPT Presentation

Transcript of Inserarea unui nou element in lista

Page 1: Inserarea unui nou  element in  lista

Inserarea unui nou element in lista

Page 2: 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

Page 3: Inserarea unui nou  element in  lista

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

Page 4: Inserarea unui nou  element in  lista

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

Page 5: Inserarea unui nou  element in  lista

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

Page 6: Inserarea unui nou  element in  lista

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