Materi
Senarai berkait (linked list) menyimpan data dalam simpul-simpul yang terpisah. Setiap simpul memegang satu nilai dan satu rujukan ke simpul berikutnya; simpul terakhir merujuk None. Yang dipegang program hanya simpul pertama, yang disebut kepala. Berbeda dengan list Python yang menyimpan datanya berderet, simpul senarai berkait boleh tersebar di mana saja di memori.
Akibatnya biaya operasinya terbalik dari list. Menyisipkan atau menghapus di depan cukup mengubah satu rujukan, berapa pun panjangnya. Tetapi untuk sampai ke data ke-k, rujukan harus diikuti satu per satu dari kepala, sehingga butuh k langkah; list melompat langsung ke indeks mana pun. Struktur ini jarang ditulis sendiri di Python, tetapi cara berpikirnya, objek yang merujuk objek lain, adalah dasar pohon dan graf di modul berikutnya.
class Gerbong:
def __init__(self, muatan, berikut=None):
self.muatan = muatan
self.berikut = berikut
kereta = Gerbong("semen", Gerbong("pasir", Gerbong("bata")))
def ada(kepala, dicari):
g = kepala
while g is not None:
if g.muatan == dicari:
return True
g = g.berikut
return FalseMenghapus simpul di tengah berarti membuat simpul sebelumnya melompati simpul itu: rujukan berikut milik simpul sebelumnya diarahkan ke simpul sesudahnya. Karena itu penelusuran untuk menghapus berhenti satu simpul sebelum yang dihapus. Menghapus kepala adalah kasus tersendiri, karena tidak ada simpul sebelumnya; fungsi mengembalikan kepala baru.