1-rasm. Bir bog‗lamli chiziqli ro‗yhat tuzilishi
1-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 (2-rasm).
2-rasm. Yangi element hosil qilish
b) Yaratilgan element informatsion maydoniga D o‗zgaruvchi qiymatini o‗zlashtirish (3-rasm).
3-rasm. Yangi element info maydoniga qiymat kiritish
Yangi elementni ro‗yhat bilan bog‗lash: p->ptr=lst; (shu holatda yangi element va lst – ro‗yhat boshini ko‗rsatyapti)
lst ko‗rsatkichni ro‗yhat boshiga ko‗chirish (4-rasm). lst=p;
Va nihoyat:
4-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 (5-rasm).
5-rasm. Ro‗yhat boshidagi elementni o‗chirish
Yuqorida aytilganlarni amalga oshirish uchun quyidagi ishlarni bajarish lozim:
o‗chirilayotgan elementni ko‗rsatuvchi p ko‗rsatkich kiritish: p=lst;
p ko‗rsatkich ko‗rsatayotgan element info maydonini qandaydir x o‗zgaruvchida saqlash: x=p->info;
lst ko‗rsatkichni yangi ro‗yhat boshiga ko‗chirish: lst=p->ptr;
p ko‗rsatkich ko‗rsatayotgan elementni o‗chirish: delete(p); Natijada 6-rasmdagi ko‗rinishga ega bo‗lamiz.
6-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);
}