Sari la conținut
Academia PythonAcademiaPython

3.2 Liste înlănțuite: operații de bază (adăugare, eliminare)

Concept nou și exemplu

Adăugare la început:

python.py
def adauga_inceput(cap, valoare):
nou = Nod(valoare)
nou.urmator = cap
return nou # noul cap devine capul listei

Adăugare la sfârșit:

python.py
def adauga_sfarsit(cap, valoare):
nou = Nod(valoare)
if cap is None:
return nou
curent = cap
while curent.urmator is not None:
curent = curent.urmator
curent.urmator = nou
return cap

Eliminare: refaci legăturile — nodul anterior va pointa la nodul de după cel eliminat.

La eliminarea capului, noul cap devine cap.urmator. Dacă uiți să actualizezi referința listei, pierzi întreaga listă!

Capcana referinței pierdute

Funcțiile precum adauga_inceput sau elimina_valoare întorc noul cap al listei — trebuie mereu să reții rezultatul înapoi în variabilă (cap = adauga_inceput(cap, x)). Dacă apelezi funcția fără să suprascrii cap, nodurile noi există în memorie, dar restul programului tot vede lista veche, pentru că referința ta n-a fost actualizată.