Sunteți pe pagina 1din 6

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

prim

nou
prim

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;}
}

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
p>info
p

p>urm

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;}

Y
nou

void inserare()
Inserarea dupa nodul
cu
valoare
x
{nod *p, *nou;

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

q->urm
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; }

Y q->urm

nou

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

nou prim

K
p prim

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;}}

Y
nou

S-ar putea să vă placă și