Ma’lumotlar tuzulmasi va algoritmlar fani bo’yicha mustaqil ish m



Yüklə 252,75 Kb.
səhifə3/5
tarix16.08.2023
ölçüsü252,75 Kb.
#139568
1   2   3   4   5
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ə 252,75 Kb.

Dostları ilə paylaş:
1   2   3   4   5




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

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin