Funksiya olib tashlash (Tugun tugun) agar tugun ≠ bekor va ro'yxatning kattaligi> 1 o'chirildi Ma'lumotlar: = tugun.data tugun.data: = tugun.next.data tugun.next = tugun.next.next qaytish olib tashlangan ma'lumotlar
Tugunlarning massivlari yordamida bog'langan ro'yxatlar
Hech qanday turini qo'llab-quvvatlamaydigan tillar ma'lumotnoma ko'rsatkichlarni qator indekslari bilan almashtirish orqali hali ham havolalar yaratishi mumkin. Yondashuv qator ning yozuvlar, bu erda har bir yozuv massivda keyingi (va ehtimol oldingi) tugunning indeksini ko'rsatadigan butun sonli maydonlarga ega. Massivdagi barcha tugunlardan foydalanish kerak emas. Agar yozuvlar ham qo'llab-quvvatlanmasa, parallel massivlar o'rniga tez-tez ishlatilishi mumkin.
Masalan, ko'rsatgich o'rniga massivlardan foydalaniladigan quyidagi bog'langan ro'yxat yozuvini ko'rib chiqing:
yozuv Kirish { tamsayı Keyingisi; // massivdagi keyingi yozuvning ko'rsatkichi tamsayı oldingi; // oldingi yozuv (agar ikkita bog'langan bo'lsa) mag'lubiyat ism; haqiqiy qoldiq;}
Bog'langan ro'yxatni ushbu tuzilmalar qatorini yaratish va birinchi element indeksini saqlash uchun butun o'zgaruvchini yaratish mumkin.
Elementlar orasidagi bog'lanishlar keyingi (yoki oldingi) katakning qator indeksini berilgan element ichida Keyingi yoki Oldingi maydoniga joylashtirish orqali hosil bo'ladi. Masalan:
Indeks
|
Keyingisi
|
Oldingi
|
Ism
|
Balans
|
0
|
1
|
4
|
Jons, Jon
|
123.45
|
1
|
−1
|
0
|
Smit, Jozef
|
234.56
|
2 (listHead)
|
4
|
−1
|
Adams, Odam
|
0.00
|
3
|
|
|
E'tibor qilmang, Ignatius
|
999.99
|
4
|
0
|
2
|
Yana biri Anita
|
876.54
|
5
|
|
|
|
|
6
|
|
|
|
|
7
|
|
|
|
|
Yuqoridagi misolda, ListHead ro'yxatdagi birinchi yozuvning joylashuvi 2 ga o'rnatiladi. E'tibor bering, 3 va 5 dan 7 gacha bo'lgan yozuvlar ro'yxatning bir qismi emas. Ushbu katakchalar ro'yxatdagi barcha qo'shimchalar uchun mavjud. Yaratish orqali ListFree tamsayı o'zgaruvchisi, a bepul ro'yxat mavjud bo'lgan hujayralarni kuzatib borish uchun yaratilishi mumkin. Agar barcha yozuvlar ishlatilayotgan bo'lsa, yangi yozuvlar ro'yxatda saqlanishidan oldin massivning kattalashtirilishi yoki ba'zi elementlarning o'chirilishi kerak edi.
Quyidagi kod ro'yxatni bosib o'tib, nomlar va hisob balansini ko'rsatishi mumkin:
Amaliy topshiriqlar
Code :
# Chiziqli bog'langan ro'yxat
chiziqli_royxat = [1, 2, 3, 4, 5]
# Ro'yxatdagi har bir elementni chizish
for element in chiziqli_royxat:
print(element, end=" ")
# Yangi qator boshlanishi
print()
Natija: 1 2 3 4 5
Dostları ilə paylaş: |