Kompyuter ilmlari va dasturlashtirish kafedrasi algoritmlar va berilganlar strukturalari



Yüklə 1,96 Mb.
səhifə9/47
tarix28.11.2023
ölçüsü1,96 Mb.
#136696
1   ...   5   6   7   8   9   10   11   12   ...   47
Algoritmlar va berilganlar strukturasi(ATTs2)

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:

  1. q ko’rsatkich ko’rsatuvchi bo’sh elementni yaratish: Node *q=new

Node;

  1. Yaratilgan element informatsion maydoniga x ni kiritish: q->info=x;

  2. q elementni p elementdan keyingi element bilan bog‗lash.

q->ptr=p->ptr – yaratilgan element ko’rsatkichiga p element ko’rsatkichini o’zlashtirish.

  1. 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<<"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 (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’rsatuvchi q ko’rsatkichni kiritish.
q=p->ptr;

  1. p elementni q elementdan keyingi element bilan bog‗lash.

p->ptr=q->ptr;

  1. O’chirilayotgan element info maydonidagi informatsiyani yodda

saqlash (agar zarur bo’lsa) k=q->info;

  1. q ko’rsatkich ko’rsatayotgan elementni o’chirish.

delete(q)
Natijada ro’yhat quyidagi ko’rinishga ega bo’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;ip=p->next;
q = p->next;
p->next = q->next;
delete(q);




Yüklə 1,96 Mb.

Dostları ilə paylaş:
1   ...   5   6   7   8   9   10   11   12   ...   47




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

    Ana səhifə