Kommunikatsiyalarini rivojlantirish vazirligi muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalari universiteti qarshi filiali


Halqasimon ro‘yxatlar ustida bajariladigan amallar



Yüklə 0,51 Mb.
səhifə3/5
tarix14.11.2022
ölçüsü0,51 Mb.
#69066
1   2   3   4   5
O‘zbekiston respublikasi axborot texnologiyalari va kommunikatsi

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<
}



// 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 turdagi ma’lumotlar tuzilmasi
Reja:
  1. Dinamik turdagi ma’lumotlar tuzilmasi


  2. Dinamik ma’lumotlar tuzilmasi klassifikatsiyasi


  3. Dinamik ma’lumotlar tuzilmasi - ro’yhatlar


  4. 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.




  1. Yüklə 0,51 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