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
// C program for Indexed Sequential Search
#include #include void indexedSequentialSearch(int arr[], int n, int k)
{
int elements[20], indices[20], temp, i, set = 0;
int j = 0, ind = 0, start, end;
for (i = 0; i < n; i += 3) {
// Storing element
elements[ind] = arr[i];
// Storing the index
indices[ind] = i;
ind++;
}
if (k < elements[0]) {
printf("Not found");
exit(0);
}
else {
for (i = 1; i <= ind; i++)
if (k <= elements[i]) {
start = indices[i - 1];
end = indices[i];
set = 1;
break;
}
}
if (set == 0) {
start = indices[i - 1];
end = n;
}
for (i = start; i <= end; i++) {
if (k == arr[i]) {
j = 1;
break;
}
}
if (j == 1)
printf("Found at index %d", i);
else
printf("Not found");
}
// Driver code
void main()
{
int arr[] = { 6, 7, 8, 9, 10 };
int n = sizeof(arr) / sizeof(arr[0]);
// Element to search
int k = 8;
indexedSequentialSearch(arr, n, k);
Dinamik ma'lumotlar tuzilmalari tuzilishi. Afzalliklari va kamchiliklari
Kirish Ma'lumotlar tuzilmasi dasturlarda ajratish usuli bo'yicha statik va dinamikaga bo'lingan. Statik ma'lumotlar tuzilmasi - bu kompyuterning xotirasida joylashishi va elementlarning o'zaro aloqalari ular tomonidan amalga oshiriladigan sohada dasturni bajarish paytida o'zgarishsiz qoladigan ma'lumotlardir. Statik strukturaning ma'lumotlariga dasturda e'lon qilingan asosiy va mahalliy, ham global darajadagi o'zgaruvchilar kiradi. Dinamik ma'lumotlar tuzilmasi - bu kompyuterning xotirasiga joylashtirilishi va New va Dispose kabi tizim proseduralari yordamida dasturni bajarishda xotiradan o'chirilishi mumkin bo'lgan ma'lumotlar.
Dinamik ma'lumotlar tuzilmalari ikki shaklda bo'ladi: bog'liq bo'lmagan dinamik ma'lumotlar; bog’liq dinamik ma'lumotlar.
Bog’liq bo'lmagan dinamik ma'lumotlar tuzilmasi statik bilan bir xil. Bundan tashqari, bog'liq bo'lmagan dinamik ma'lumotlar avtomatik ravishda emas, balki dasturchi tomonidan xotirada saqlanadi. Bog’liq bo’lgan dinamik ma'lumotlarga ro'yxatlar, navbatlar va ustunlar kiradi; bu elementlar manzillar havolalari yordamida o'zaro bog'liq bo'lgan birlashtirilgan ma'lumotlar.