Witam, mam problem ze zrozumieniem zasady funkcjonowania list powiązanych w pythonie. Nie do końca rozumiem gdzie zlokalizowane są poszczególne nody takiej listy. Nie są przyporządkowane im żadne zmienne, tylko referencje w innych nodach a zmienną jest dopiero cała lista.
Jeśli stworzymy klasę Node
:
class Node:
def __init__(self, data, next_node = None):
self.data = data
self.next_node = next_node
i stworzymy ręcznie małą listę powiązaną:
head = None
head = Node(1, head)
head = Node(2, head)
head = Node(3, head)
head = Node(4, head)
to tworzymy instancje, lecz teoretyczne poprzednie instancje powinny zostać nadpisane przez przypisanie nowych instancji do zmiennej head, tymczasem dane poprzednich instancji wciąż istnieją właśnie poprzez linkowanie atrybutem next_node
. Domyślam się że może tutaj chodzić o zagadnienie referencji, ale jak może istnieć referencja do czegoś co nie ma przypisanej nazwy czy oznaczenia? Gdzie python umieszcza te dane? Albo co jest nie tak z moim rozumowaniem? Dzieki za ewentualne pochyleniem się nad pytaniem.