2-rasm. Bir bog’lamli chiziqli ro’yhat tuzilishi
2-rasmdagi ro’yhat boshiga informatsion maydoni D o’zgaruvchi bo’lgan element qo’yamiz. Ushbu ishni amalga oshirish uchun quyidagi amallarni bajarish lozim bo’ladi:
a) p ko’rsatkich murojaat qiladigan, bo’sh element yaratish (3-rasm).
3-rasm. Yangi element hosil qilish
b) Yaratilgan element informatsion maydoniga D o’zgaruvchi qiymatini o’zlashtirish (3.5-rasm).
4-3.5-rasm Yangi element info maydoniga qiymat kiritish
c) Yangi elementni ro’yhat bilan bog’lash: p->ptr=lst; (shu holatda yangi element va lst – ro’yhat boshini ko’rsatyapti)
d) lst ko’rsatkichni ro’yhat boshiga ko’chirish (3.6-rasm). lst=p;
3.6-rasm. Ro’yhat boshiga element qo’shish
Endi shu algoritmni C++ tilidagi realizatsiyasini ko’rib chiqamiz.
Node * p = new Node; int numb = -1; cout<<"son kiriting: "; cin>>numb; p->info = numb; if (lst ==NULL){ p->next = NULL; lst = p; } else { p->next = lst; lst = p;} 2. Bir bog’lamli ro’yhat boshidan elementni o’chirish Ro’yhatda birinchi element info informatsion maydonidagi ma’lumotni esda saqlab qolib uni ro’yhatdan o’chiramiz (3.7-rasm).
3.7-rasm. Ro’yhat boshidagi elementni o’chirish
Yuqorida aytilganlarni amalga oshirish uchun quyidagi ishlarni bajarish lozim:
a) o’chirilayotgan elementni ko’rsatuvchi p ko’rsatkich kiritish: p=lst;
b) p ko’rsatkich ko’rsatayotgan element info maydonini qandaydir x o’zgaruvchida saqlash: x=p->info;
c) lst ko’rsatkichni yangi ro’yhat boshiga ko’chirish: lst=p->ptr;
d) p ko’rsatkich ko’rsatayotgan elementni o’chirish: delete(p);
Natijada 3.8-rasmdagi ko’rinishga ega bo’lamiz.
3.8-rasm. Ro’yhatning natijaviy ko’rinishi
Endi shu algoritmni C++ tilidagi realizatsiyasini ko’rib chiqsak.
Node* p = new Node; if (lst == NULL){ cout<<"ro'yhat bo'sh"; system("pause"); system("CLS"); } else { p = lst; lst =p->next ; delete(p); }