Bir bog’lamli ro'yxat. Bir bog’lamli ro'yxat bir nechta tugunlardan iborat bo'lib, ularning har biri a) ma'lumotlar va b) keyingi tugunga havolani o'z ichiga oladi




Download 1.26 Mb.
bet2/5
Sana22.02.2023
Hajmi1.26 Mb.
#43126
1   2   3   4   5
Bog'liq
MTA 4
20-25lab

Bir bog’lamli ro'yxat. Bir bog’lamli ro'yxat bir nechta tugunlardan iborat bo'lib, ularning har biri a) ma'lumotlar va b) keyingi tugunga havolani o'z ichiga oladi.



1-rasm. Bir bog’lamli ro'yxat
Yuqoridagi rasmda biz bog’lamli ro'yxatning tartibini ko'rishimiz mumkin. Chapdan boshlab va o'ngga qarab, biz ro'yxatning sarlavhasida ma'lumotlar va keyingi tugunga ko'rsatgich borligini ko'ramiz. Ushbu naqsh ro'yxatning oxirigacha davom etadi, bu erda u tugun emas. NULL qiymati ro'yxat tugaganligini bildiradi.
Bir bog’lamli ro'yxat yaratish uchun quyidagi kodni ko'rib chiqing.
# Node class
class Node:
# Function to initialize the node object
def __init__(self, data):
self.data = data # Assign data
self.nextnode = None # Initialize next as null
a = Node(1) # declaring data in each node
b = Node(2)
c = Node(3)
a.nextnode = b # link first node to second node
b.nextnode = c # link second node to third node
a.next.value # will return the value of the next node b = 2

Ikki bog’lamli ro'yxat. Ikki bog’lamli ro'yxatda har bir tugun ma'lumotlarni, undan keyingi tugunga havolani va undan oldingi tugunga havolani o'z ichiga oladi.



2-rasm. Ikki bog’lamli ro’yxat
Bir bog’lamli ro'yxat va ikki marta bog’lamli ro'yxat o'rtasidagi farq yuqoridagi rasmda ko'rsatilgan "oldingi" o'qlardir. Qo'shimcha ko'rsatgichning afzalliklari shuni anglatadiki, ma'lumotlarga kirishda ro'yxatni istalgan yo'nalishda harakatlantirish mumkin - bu 5-tugundan 8-tugunga o'tish ro'yxat boshidan o'tishdan ko'ra osonroq bo'lishi mumkinligini anglatadi.
Ro'yxatning boshida va oxirida joylashgan yangi tugunlarga sentinellar deyiladi. Ushbu tugunlar yuqorida ko'rgan NULL qiymatlarini almashtiradi. Ular ro'yxatning yuqori yoki pastki qismiga tezda qo'shish yoki o'chirish imkonini beradi.
Ikki bog’lamli ro'yxat uchun quyidagi kodni ko'rib chiqing.
# Ikki marta bog'langan ro'yxat uchun tugunlarni yaratish uchun kod
# Bog'langan ro'yxat tugun
class Node:
def __init__(self):
self.data = None # ma'lumotlar konteyneri
self.next_node = None # keyingi tugunga standart ko'rsatgich
self.prev_node = None # oldingi tugunga ko'rsatgich
# Har bir tugunni yaratish
a = Node(1)
b = Node(2)
c = Node(3)
# Tugunlarni ulang
# Ulanish tugunlari a & b har ikki yo'nalishda bir-biriga
a.next_node = b
b.prev_node = a
# Ulanish tugunlari b & amp; c har ikki yo'nalishda bir-biriga.
b.next_node = c
c.prev_node = b
Endi bizda bog’lamli ro‘yxatlar yaratish uchun zarur bo‘lgan kod bor, keling, Leetcode-da topishingiz mumkin bo‘lgan ba’zi umumiy intervyu savollarini ko‘rib chiqamiz.

Download 1.26 Mb.
1   2   3   4   5




Download 1.26 Mb.

Bosh sahifa
Aloqalar

    Bosh sahifa



Bir bog’lamli ro'yxat. Bir bog’lamli ro'yxat bir nechta tugunlardan iborat bo'lib, ularning har biri a) ma'lumotlar va b) keyingi tugunga havolani o'z ichiga oladi

Download 1.26 Mb.