HALQASIMON BIR BOG’LAMLI RO’YXATLAR VA ULAR USTIDA AMAL BAJARISH ALGORITMLARI.
Reja:
Dinamik ma’lumotlar tuzilmasi
Halqasimon ro‘yxatlar ustida bajariladigan amallar
Halqasimon bir bog‘lamli ro‘yxatga element qo‘shish
Dinamik ma’lumotlar tuzilmasi – bu qandaydir bir qonuniyatga asoslanib shakllangan, lekin elementlari soni, o’zaro joylashuvi va o’zaro aloqasi dastur bajarilishi davomida shu qonuniyat asosida dinamik o’zgaruvchan bo’lgan ma’umotlar tuzilmasidir.
Dinamik tuzilmalar massiv va yozuvdan farqli ravishda operativ xotirada ketma-ket sohalarda joylashmaydi. Ixtiyoriy dinamik tuzilma elementi 2 ta maydondan tashkil topadi. Bular informatsion maydon va ko'rsatgichli maydon. Chiziqli ro’yhatlar elementlari boshqa elementlar bilan bog’langanligiga qarab bir bog’lamli ro’yhat , ikki bog’lamli ro’yhat va halqasimon bog’lamli ro’yhatga bo’linadi.
Halqasimon ro‘yxatlar
Halqasimon ro‘yxatlar oddiy ro‘yxat kabi bo‘lib, farqi shuki, unda ro‘yxat oxiri ro‘yxat boshiga ulangan bo‘ladi. Halqasimon ro‘yxatlar ikki xil bo‘ladi.
1) Halqasimon bir bog‘lamli
2) Halqasimon ikki bog‘lamli
Halqasimon ro‘yxatlar ustida bajariladigan amallar
1) Element qo‘shish
2) Element o‘chirish
3) Ro‘yxatni o‘chirish
4) Bo‘shlikka tekshirish
Halqasimon bir bog‘lamli ro‘yxatlar
Agar oxirgi element birinchi element ko’rsatkichi bilan bog’langan bo’lsa, bunday ro’yhatga halqasimon ro‘yhat deyiladi.
Halqasimon bir bog‘lamli ro‘yxatni e’lon qilish
class Node{
public:
int info;
Node *Next;
};
Node *Head=NULL; //ro‘yxat boshi ko‘rsatkichi
Node *Tail=NULL; //ro‘yxat oxiri ko‘rsatkichi
Halqasimon bir bog‘lamli ro‘yxatga element qo‘shish
void Add(int x)
{
Node *p=new Node; //yangi element uchun xotiradan joy ajratish
p->Next=Head;
p->info=x;
if (Head!=NULL) {
Tail->Next=p;
Tail=p;
}
else {
Head=Tail=p;
}
Halqasimon bir bog‘lamli ro‘yxat boshidan element o‘chirish algoritmi
Quyidagi rasmda ro‘yxat boshidagi elementni o‘chirish amali ko‘rsatilgan
void Del(){
Node *p=Head; //o‘chiriladigan elementni belgilab olish
Head=Head->Next; //ro‘yxat boshini keyingi elementga ko‘chirish
Tail->Next=Head; //oxirgi element ko‘rsatkichini 2-elementga ko‘chirish
delete p ; //ro‘yxat boshidagi elementni o‘chirish
}
Halqasimon bir bog‘lamli ro‘yxat ni ekranga chiqarish
void Show()
{
Node *p=Head;
while (p!=Tail)
{
cout<
info<<" ";
p=p->Next;
}
cout<
info<
}
Do'stlaringiz bilan baham: |