|
Bir bog„lamli ro„yhat boshiga element qo„yish
| bet | 91/163 | Sana | 16.01.2024 | Hajmi | 18,84 Mb. | | #138868 |
Bog'liq O zbekiston respublikasi oliy va o rta maxsus ta lim vazirligi tBir bog„lamli ro„yhat boshiga element qo„yish
2-rasm. Bir bog„lamli chiziqli ro„yhat tuzilishi
2-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-rasm).
3-rasm. Yangi element hosil qilish
b) Yaratilgan element informatsion maydoniga D o„zgaruvchi qiymatini o„zlashtirish (4 3.5-rasm).
4-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;
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);
}
|
| |