4-tajriba ishi. Dinamik ma’lumotlar tuzilmasini tadqiq qilish. Chiziqli bog’langan ro’yhatlar


Bir bog‘lamli ro‘yhat boshiga element qo‘yish



Yüklə 1,02 Mb.
səhifə3/6
tarix02.12.2022
ölçüsü1,02 Mb.
#71802
1   2   3   4   5   6
Bir bog‘lamli ro‘yhat boshiga element qo‘yish



3.3-rasm. Bir bog‘lamli chiziqli ro‘yhat tuzilishi


3.3-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 (3.4-rasm).



3.4-rasm. Yangi element hosil qilish


b) Yaratilgan element informatsion maydoniga D o‘zgaruvchi qiymatini o‘zlashtirish (3.5-rasm).





3.5-rasm. Yangi element info maydoniga qiymat kiritish


c) Yangi elementni ro‘yhat bilan bog‘lash: p->ptr=lst; (shu holatda yangi element va lst – ro‘yhat boshini ko‘rsatyapti)
d) lst ko‘rsatkichni ro‘yhat boshiga ko‘chirish (3.6-rasm). lst=p;
Va nihoyat:



3.6-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 (3.7-rasm).



3.7-rasm. Ro‘yhat boshidagi elementni o‘chirish


Yuqorida aytilganlarni amalga oshirish uchun quyidagi ishlarni bajarish lozim:


a) o‘chirilayotgan elementni ko‘rsatuvchi p ko‘rsatkich kiritish: p=lst;
b) p ko‘rsatkich ko‘rsatayotgan element info maydonini qandaydir x o‘zgaruvchida saqlash: x=p->info;
c) lst ko‘rsatkichni yangi ro‘yhat boshiga ko‘chirish: lst=p->ptr;
d) p ko‘rsatkich ko‘rsatayotgan elementni o‘chirish: delete(p);
Natijada 3.8-rasmdagi ko‘rinishga ega bo‘lamiz.


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

Yüklə 1,02 Mb.

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




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