|
O’zbekiston respublikasi oliy va o’rta maxsus ta’lim vazirligi toshkent axborot texnologiyalari universiteti
|
bet | 92/163 | Sana | 16.01.2024 | Hajmi | 18,84 Mb. | | #138868 |
Bog'liq O zbekiston respublikasi oliy va o rta maxsus ta lim vazirligi t3. Elementni ro„yhatga qo„shish
Berilgan ro„yhatda p ko„rsatkich ko„rsatayotgan elementdan keyin informatsion maydoni x bo„lgan elementni qo„yamiz (3.9-rasm).
3.9-rasm. Ro„yhatga yangi element qo„shish
Aytilganlarni amalga oshirish uchun quyidagi amallarni bajarish lozim:
q ko„rsatkich ko„rsatuvchi bo„sh elementni yaratish: Node *q=new Node
b) Yaratilgan element informatsion maydoniga x ni kiritish: q->info=x;
c) q elementni p elementdan keyingi element bilan bog„lash.
q->ptr=p->ptr – yaratilgan element ko„rsatkichiga p 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.
3.10-rasm. Natijaviy ro„yhat ko„rinishi
Endi shu algoritmni C++ tilidagi realizatsiyasini ko„rib chiqsak.
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 (3.11-rasm).
3.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;
b) p elementni q elementdan keyingi element bilan 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„rsatkich ko„rsatayotgan elementni o„chirish.
delete(q)
Natijada ro„yhat quyidagi ko„rinishga ega bo„ladi:
3.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);
|
| |