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


Chiziqli bir bog’lamli ro’yhatlar va ular ustida amal bajarish



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

Chiziqli bir bog’lamli ro’yhatlar va ular ustida amal bajarish 
algoritmlari 
Tuzilmada elementlar o‘zidan keyingi element bilan bog‘langan bo‘lsa, bunday 
ro‘yhatga 
bir bog‘lamli ro‘yhat
deyiladi. Agar har bir element o‘zidan oldingi 
va o‘zidan keyingi element bilan bog‘langan bo‘lsa, u holda bunday 
ro‘yhatlarga 
2 bog‘lamli ro‘yhatlar
deyiladi. Agar oxirgi element birinchi 
element ko‘rsatkichi bilan bog‘langan bo‘lsa, bunday ro‘yhatga 
halqasimon 
ro‘yhat
deyiladi. Ro‘yhatning har bir elementi shu elementni 
identifikatsiyalash uchun 
kalit
ga ega bo‘ladi. Kalit odatda butun son yoki satr 
ko‘rinishida ma’lumotlar maydonining bir qismi sifatida mavjud bo‘ladi. 
Ro‘yhatlar ustida quyidagi amallarni bajarish mumkin. 
-
ro‘yhatni shakllantirish (birinchi elementini yaratish); 
-
ro‘yhat oxiriga yangi element qo‘shish; 
-
berilgan kalitga mos elementni o‘qish; 
-
ro‘yhatning ko‘rsatilgan joyiga element qo‘shish (berilgan kalitga mos 
elementdan oldin yoki keyin) 
-
berilgan kalitga mos elementni o‘chirish; 
-
kalit bo‘yicha ro‘yhat elementlarini tartibgakeltirish. 
Ro‘yhatlar bilan ishlashda dasturda boshlang‘ich elementni ko‘rsatuvchi 
ko‘rsatkich talab etiladi. Chiziqli bir bog‘lamli ro‘yhatlar ustida turli amallar 
bajarish algoritmlari va dasturlarini ko‘rib chiqamiz. 


Mazkur ko‘rinishdagi ro‘yhat elementi ko‘rsatkichining o‘ziga xosligi shundan 
iboratki, u faqatgina ro‘yhatning navbatdagi (o‘zidan keyin keluvchi) elementi 
adresini ko‘rsatadi. Bir tomonlama yo‘naltirilgan ro‘yhatda eng so‘ngi element 
ko‘rsatkichi bo‘sh, ya’ni 
NULL
bo‘ladi.
Lst
– ro‘yhat boshi ko‘rsatkichi. U ro‘yhatni yagona bir butun sifatida 
ifodalaydi. Ba’zan ro‘yhat bo‘sh bo‘lishi ham mumkin, ya’ni ro‘yhatda bitta ham 
element bo‘lmasligi mumkin. Bu holda 
lst = NULL
bo‘ladi. Hozir chiziqli bir 
bog‘lamli ro‘yhat hosil qilish dasturini ko‘rib chiqsak. Buning uchun biz 
foydalanuvchi tomonidan yaratiladigan nostandart toifa yaratib olishimiz kerak. 
Buning bir qancha usullari mavjud, ya’ni klasslar yoki strukturalar bilan amalga 
oshirish mumkin. Masalan,
class Node{ 
public://klassma’lumotlariga tashqaridan bo‘ladigan murojaatga ruxsat berish 
int info; // informatsion maydon 
Node* next;// ko‘rsatkichli maydon 
}; 
Bu yerda biz 
Node 
nomli toifa yaratdik va ro‘yhatimiz butun sonlardan iborat. 
Endi ro‘yhat elementlarini shu toifa orqali e’lon qilsak bo‘ladi, ya’ni 
Node *lst = NULL;// ro‘yhat boshi ko‘rsatkichi 
Node *last = NULL;// ro‘yhatga oxirgi kelib tushgan elementning ko‘rsatkichi 
Endi shu belgilashlar orqali ro‘yhat hosil qilamiz. 
Node * p = new Node; 
int numb = -1; 
cout<<"son kiriting: "; 
 cin>>numb; 
p->info = numb; 
p->next = NULL; 
if (lst == NULL) { 
lst = p; 
last = p; 

else{ last->next = p; 
last = p; } 
Bu dasturda yangi element ro‘yhat oxiridan kelib qo‘shiladi. 
Bir bog‘lamli ro‘yhatlar ustida amallarbajarishalgoritmlari 

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