Inserarea unui element Î ntr -o list Ă
description
Transcript of Inserarea unui element Î ntr -o list Ă
FOLOSIND ALOCAREA DINAMICĂ
INSERAREA UNUI ELEMENT ÎNTR-O LISTĂ
CLASIFICARE
• Într-o listă liniară simplu înlănţuită, se poate insera un element :
• Înaintea primului nod al listei• După ultimul nod al listei• Înaintea nodului cu valoare x• După nodul cu valoarea x• Pe poziţia k
INSERAREA UNUI ELEMENT ÎNAINTEA PRIMULUI NOD
void creare(int x){nod *nou;if(prim==NULL){
prim=new nod;prim->info=x;prim->urm=NULL;}
else {nou=new nod;nou->info=x;nou->urm=prim;prim=nou;
}}
Declaram o variabila de tip nodVerificam daca lista este vidaDaca da: alocam mem. primul nodCompletam campurile de infoSi facem legatura catre NULLDaca nu: alocam memorie noului nodCompletam campurile de infoFacem legatura cu primul nodNoul nod devine primul
INSERAREA UNUI ELEMENT DUPĂ ULTIMUL NOD
void crearea2(){if(prim==NULL){
prim=new nod;prim->info=x;prim->urm=NULL;ultim=prim;
}else{
nou=new nod;nou->info=x;nou->urm=NULL;ultim->urm=nou;ultim=nou;
}}
Verificam daca lista este vidaDaca da: alocam mem. primul nodCompletam campurile de infoSi facem legatura catre NULLPrimul nod devine ultimulDaca nu: alocam memorie noului nodCompletam campurile de infoFacem legatura cu NULLFacem legatura dintre ultimul nod si noul nodNoul nod devine ultimul
INSERAREA UNUI ELEMENT ÎNAINTEA NODULUI CU VALOARE X
int i; int inserare(int x,int y){
if(prim->info==x) {
nou=new nod;nou->info=y;nou->urm=prim;prim=nou;
} else {
nou=new nod;p=prim;while((p->urm)->info!=x && p->urm)p=p->urm;nou->info=y;nou->urm=p->urm;p->urm=nou; }
}
INSERAREA UNUI ELEMENT DUPĂ NODUL CU VALOARE X
int i; int inserare(int x,int y){
if(ultim->info==x) {
nou=new nod;nou->info=y;nou->urm=NULL;ultim->urm=nou;ultim=nou;
} else {
nou=new nod;p=prim;while(p->info!=x && p->urm)p=p->urm;nou->info=y;nou->urm=(p->urm)->urm;p->urm=nou;}
}
INSERAREA UNUI ELEMENT PE POZIŢIA K
int i; int inserare(int k, int y){
if(k==1) {
nou=new nod;nou->info=y;nou->urm=prim;prim=nou;
} else {
nou=new nod;p=prim;for(i=1;i<k-1;i++)p=p->urm;nou->info=y;nou->urm=p->urm;p->urm=nou;}
}
Secretul acestui algoritm esterefacerea legaturilor dintre noduri