Prev – bu ro’yxat oldidagi ko’rsatgich, next esa, ro’yxat ortidagi ko’rsatgich hisoblanadi. Ushbu ikkala ko’rsatgich o’zaro bir-biriga bog’lanadi.
Quyida ikkitalik bog’langan ro’yxatni C ++ tilida ifodalanishini ko’rib chiqamiz:
struct Node { int data; struct Node* next; struct Node* prev; }; Ikki tomonlama bog'langan ro'yxatning yakka bog'langan ro'yxatdan afzalliklari va kamchiliklari quyida keltirilgan.
Bitta bog'langan ro'yxatga nisbatan afzalliklari: 1) Ikkitalik bog’langan ro’yxat oldinga va orqaga qarab yo'naltirilishi mumkin.
2) Agar o'chiriladigan tugunga ko'rsatgich berilgan bo'lsa, Ikkitalik bog’langan ro’yxatda o'chirish jarayoni samaraliroq bo'ladi.
3) Biz tezda yangi tugunni berilgan tugundan oldin joylashtira olamiz. Alohida bog'langan ro'yxatda tugunni o'chirish uchun avvalgi tugunga ko'rsatgich kerak. Ushbu oldingi tugunni olish uchun ba'zida ro'yxat o'tib ketadi Ikkitalik bog’langan ro’yxatda biz oldingi tugmachani oldingi ko'rsatgich yordamida olishimiz mumkin.
Kamchiliklari: 1) Ikkitalik bog’langan ro’yxatning har bir tuguni oldingi ko'rsatkich uchun qo'shimcha joy talab qiladi. Ikkitalik bog’langan ro’yxatni bitta ko'rsatkich bilan amalga oshirish mumkin.
2) Barcha operatsiyalar oldingi ko'rsatkichni saqlab turishni talab qiladi. Masalan, kiritishda avvalgi ko'rsatkichlarni keyingi ko'rsatkichlar bilan birga o'zgartirishimiz kerak. Masalan, har xil holatdagi qo'shimchalar uchun quyidagi funktsiyalarda oldingi ko'rsatkichni o'rnatish uchun 1 yoki 2 ta qo'shimcha qadam kerak.
Kiritish Tugunni to'rtta usulda qo'shish mumkin
1) Ikkitalik bog’langan ro’yxatningning old qismida
2) berilgan tugundan keyin.
3) Ikkitalik bog’langan ro’yxatning oxirida
4) berilgan tugundan oldin.
1) Oldinga tugun qo'shish: (5 bosqichli jarayon)
Yangi tugun har doim berilgan bog'langan ro'yxatning boshidan oldin qo'shiladi. Yangi qo'shilgan tugun esa Ikkitalik bog’langan ro’yxatningning yangi boshiga aylanadi. Masalan, agar berilgan bog'langan ro'yxat 10152025 bo'lsa va biz 5 ni old tomonga qo'shsak, u holda bog'langan ro'yxat 510152025 bo'ladi. Ro'yxatning old qismiga qo'shiladigan funktsiyani push () deb ataymiz. bosh ko'rsatkichiga ko'rsatgichni qabul qilishi kerak, chunki surish yangi tugunga ishora qilish uchun bosh ko'rsatkichini o'zgartirishi kerak(3-rasm).
3-rasm.
Oldinga tugun qo'shish uchun 5 ta qadam quyida keltirilgan.