Maruza. Dinamik ma’lumotlar tuzilmasi. Chiziqli ro’yxatlar. Reja



Yüklə 0,57 Mb.
Pdf görüntüsü
səhifə4/5
tarix02.12.2023
ölçüsü0,57 Mb.
#171045
1   2   3   4   5
Tema10-11

3. Element
ni 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: 
a) qko‘rsatkich ko‘rsatuvchi bo‘sh elementni yaratish: Node *q=new Node; 
b) Yaratilgan element informatsion maydoniga xni kiritish: q->info=x; 
c) qelementni p elementdankeyingi element bilan bog‘lash. 
q->ptr=p->ptr – yaratilgan element ko‘rsatkichigap 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. 
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<<"nechtaelementdankeyinkiritasiz 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‘rsatuvchiq ko‘rsatkichni kiritish. 
q=p->ptr; 
b) p elementni q elementdan keyingi elementbilan 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‘rsatkichko‘rsatayotganelementni o‘chirish. 


delete(q) 
Natijadaro‘yhatquyidagiko‘rinishgaegabo‘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;inext; 
q = p->next; 
p->next = q->next; 
delete(q); 

Yüklə 0,57 Mb.

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