Linked List — elementlar bir-biriga pointer orqali bog'langan ma'lumotlar tuzilmasi.
Pointer nima? Pointer — bu boshqa ob'ektning xotiradagi manzilini saqlovchi o'zgaruvchi. Oddiy qilib aytganda, pointer "mana u yerda" degan ko'rsatkich. Masalan, siz do'stingizga "kitob javonda" desangiz — bu pointer. Siz kitobning o'zini bermadingiz, faqat qayerdaligini ko'rsatdingiz.
Linked List da har bir element Node deb ataladi. Node ikkita qismdan iborat:
data — saqlanadigan qiymat (masalan, 10)next — keyingi nodening xotiradagi manziliga pointerAgar next = None bo'lsa — bu oxirgi node, undan keyin hech narsa yo'q.
Node class'ini yaratish:
class Node:
def __init__(self, data):
self.data = data # qiymat
self.next = None # keyingi node (hozircha yo'q)Nodelar yaratish va bog'lash:
node1 = Node(10)
node2 = Node(20)
node3 = Node(30)
# node1 → node2 → node3
node1.next = node2
node2.next = node3
print(node1.data) # 10
print(node1.next.data) # 20
print(node1.next.next.data) # 30
print(node1.next.next.next) # NoneLoading diagram...
head — birinchi nodeni ko'rsatuvchi pointer. List bilan ishlash har doim head dan boshlanadi:
head = node1While sikl bilan barcha nodelarni chiqarish:
current = head
while current:
print(current.data, end=" -> ")
current = current.next
print("None")
# 10 -> 20 -> 30 -> Nonecurrent = current.next — pointer ni keyingi nodega ko'chiradi. current None bo'lganda sikl to'xtaydi.
Muhim qoidalar:
Node klasi: data va next atributlarnode.next = keyingi_node — nodelarni bog'lashnext = Nonehead — birinchi nodega pointerwhile current — zanjir bo'yicha yurishLinked list yaratish
Quyidagi amallarni bajaring: