Inserarea Unui Element in Lista

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

     Y prim primnou nou

     Y p