Berilgan ro‘yhatda p ko‘rsatkich ko‘rsatayotgan elementdan keyin informatsion maydoni x bo‘lgan elementni qo‘yamiz (4.9-rasm).
4.9-rasm. Ro‘yhatga yangi element qo‘shish
Aytilganlarni amalga oshirish uchun quyidagi amallarni bajarish lozim:
a) q ko‘rsatkich ko‘rsatuvchi bo‘sh elementni yaratish: Node *q=new Node;
b) Yaratilgan element informatsion maydoniga xni kiritish: q->info=x;
c) q elementni p elementdan keyingi element bilan bog‘lash.
q->ptr=p->ptr – yaratilgan element ko‘rsatkichigap element ko‘rsatkichini o‘zlashtirish.
d) p element bilan q elementni bog‘lash.
p->ptr=q – bu amal p elementdan keyingi element q ko‘rsatkich murojaat qilgan element bo‘lishini anglatadi.
Natijada quyidagi rasmdagidek ko‘rinishga ega bo‘lamiz.
4.10-rasm. Natijaviy ro‘yhat ko‘rinishi
Endi shu algoritmni C++ tilidagi realizatsiyasini ko‘rib chiqsak.
Node* p = lst; Node* q = new Node; int numb = -1; cout<<"son kiriting: "; cin>>numb; q->number = numb; int k; cout<<"nechta elementdan keyin kiritasiz k=";cin>>k; for(int i=0;inext; q->next = p->next; p->next = q;
4. Bir bog‘lamli ro‘yhatdan elementni o‘chirish
Ro‘yhatda p ko‘rsatkich ko‘rsatayotgan elementdan keyingi elementni o‘chiramiz (4.11-rasm).
4.11-rasm. Ro‘yhat o‘rtasidan element o‘chirish
Buni ro‘yobga chiqarish uchun quyidagi ishlarni amalga oshirish lozim:
a) O‘chirilayotgan elementni ko‘rsatuvchi q ko‘rsatkichni kiritish.
q=p->ptr;
b) p elementni q elementdan keyingi element bilan bog‘lash.
p->ptr=q->ptr;
c) O‘chirilayotgan element info maydonidagi informatsiyani yodda saqlash (agar zarur bo‘lsa)k=q->info;
d) q ko‘rsatkich ko‘rsatayotgan elementni o‘chirish.
delete(q)
Natijada ro‘yhat quyidagi ko‘rinishga ega bo‘ladi:
4.12-rasm. Natijaviy ro‘yhat ko‘rinishi
Shu algoritm dasturi:
Node* p = lst; Node* q = new Node; int k; cout<<"k=";cin>>k; for(int i=0;inext; q = p->next; p->next = q->next; delete(q);