O’zbekiston respublikasi oliy va o’rta maxsus ta’lim vazirligi toshkent axborot texnologiyalari universiteti



Yüklə 18,82 Mb.
səhifə34/162
tarix30.12.2022
ölçüsü18,82 Mb.
#98054
1   ...   30   31   32   33   34   35   36   37   ...   162
МТ Мажмуа МАЪРУЗАЛАР

3. Elementni ro‘yhatga qo‘shish


Berilgan ro‘yhatda p ko‘rsatkich ko‘rsatayotgan elementdan keyin informatsion maydoni x bo‘lgan elementni qo‘yamiz (9-rasm).

9-rasm. Ro‘yhatga yangi element qo‘shish

Aytilganlarni amalga oshirish uchun quyidagi amallarni bajarish lozim:
a) qko‘rsatkich ko‘rsatuvchi bo‘sh elementni yaratish: Node *q=new Node;
b) Yaratilgan element informatsion maydoniga xni kiritish: q->info=x;
c) qelementni p elementdankeyingi 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.


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<<"nechtaelementdankeyinkiritasiz k=";cin>>k;
for(int i=0;inext;
q->next = p->next;
p->next = q;
          1. 4. Bir bog‘lamli ro‘yhatdan elementni o‘chirish


Ro‘yhatda p ko‘rsatkich ko‘rsatayotgan elementdan keyingi elementni o‘chiramiz (11-rasm).

11-rasm. Ro‘yhat o‘rtasidan element o‘chirish

Buni ro‘yobga chiqarish uchun quyidagi ishlarni amalga oshirish lozim:
a) O‘chirilayotgan elementni ko‘rsatuvchiq ko‘rsatkichni kiritish.
q=p->ptr;
b) p elementni q elementdan keyingi elementbilan 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‘rsatkichko‘rsatayotganelementni o‘chirish.
delete(q)
Natijadaro‘yhatquyidagiko‘rinishgaegabo‘ladi:

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);

Yüklə 18,82 Mb.

Dostları ilə paylaş:
1   ...   30   31   32   33   34   35   36   37   ...   162




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə