Əlaqəli siyahı elementləri yaddaşda yan-yana yox, düyünlərdə saxlayır: hər düyün verilən və növbəti düyünə istinad daşıyır. Bu sadə ideya əlavə və silməni sürüşdürmə olmadan O(1)-də edir, amma indekslə girişi O(n)-ə çevirir. Massivin yaddaş modelinə massiv və dinamik massiv dərsində baxmışdıq.
Düyün və LinkedList sinfi
Node iki sahə saxlayır: value və next. Siyahı yalnız head-i bilir, ölçünü isə ayrıca sayır ki, len O(1) işləsin. __iter__ generator kimi yazılıb (iterasiya protokolu), ona görə list(...), sum(...) və in hazır işləyir; __len__ üçün dunder metodlarına baxın.
class Node:
def __init__(self, value, next=None):
self.value = value
self.next = next
class LinkedList:
def __init__(self):
self.head = None
self._size = 0
def push_front(self, value):
self.head = Node(value, self.head)
self._size += 1