Liste Simplu Inlantuite
Operatii elementareStergerea unui element
Recapitulare• Definitie:
Zona de memorie neliniara organizata in celule ce contin referinte catre alte celule.
• Declaratie C:
typedef struct celula {
tip_informatie informatie;
celula* celula_urmatoare;
};
Reprezentare grafica
Operatii elementare
• Parcurgere lista• Iterativ• Recursiv
• Inserare La inceputul listei La sfarsitul listei Dupa o celula anume Inainte de o celula anume
Stergere
• Exemplu
Stergere(2)
Algoritm Stergere
• Algoritm
Cazuri particulare
• Lista vida->rezolvare:test cap_lista == NULL
• Lista cu un element->test conditie_eliminare si return cod
eroare sau succes.• Eliminare cu free(celula) sau cu return celula->info.
Algoritm-Eliminare inceput
Algoritm Eliminare { • daca lista vida atunci intoarce esec; • salveaza adresa celulei eliminate; • modifica adresa inceput lista;• elibereaza spatiul ocupat de celula eliminata;• intoarce succes; }
Exemplu eliminare inceput
Eliminare interior
• Se realizeaza in doua etape:A. Localizarea celulei
-dupa care se efectueaza eliminarea (al carei camp urm se modifica) .
Caz particular: celula inexistentaB. Eliminarea propriu-zisa
-daca este necesar, elementul din celula eliminata este copiat lao adresa furnizata ca parametru
Eliminare interior
Aplicatii
• Eliminati primul element negativ dintr-o lista.• Eliminati toate numerele < 5 din lista.• Eliminati primele 3 numere negative < -2.• Eliminati dintr-o lista celulele impare si
intoarceti o noua lista cu acestea.