Amaliy topshiriq



Yüklə 5,04 Kb.
tarix10.06.2023
ölçüsü5,04 Kb.
#116543
Mahammadjonova Diyoraxon


Amaliy topshiriq(16.05.2023). Mahammadjonova Diyoraxon
1.&&.Bog'langan ro'yhatlar
Roʼyxatning umumiy koʼrinishiga misol :
E1, E2, ..., En, (n 0 boʼlib n fiksirlanmagan).
Roʼyxat elementlari soni dastur bajarilishi davomida oʼzgarib turishi mumkin.
Def.1.
Roʼyxat deb bir turga tegishli boʼlgan elementlar ketma-ketligiga aytiladi.
Eslatma: Roʼyxatni tashkil etuvchi elementlar soni chegaralanmagan boʼlishi mumkin.
Roʼyxatni mantiqiy tasvirlash
1.Oshkormas(massiv)
2.Oshkor(koʼrsatkichli)
Def.1.1.
Roʼyxatni tashkil etuvchi elementlar soni n ga roʼyxat uzunligi deyiladi.
Bog’langan ro’yhatlar
Def.1.
Agar ro’yhat elementlari ko’rsatkichlar orqali bog’langan bo’lsa, u holda bunday tuzilmaga bog’langan ro’y’hatlar deyiladi.
Eslatma: Bog’langan ro’yhatlarning har bir elementi ikki xil maydonga ega tuzilma hisoblanadi.
Izoh: Informatsion maydonda ro’y’hat elementi ma’lumotlari, ko’rsatkichlar maydonida esa mazkur element bilan bog’langan tuzilmaning boshqa elementlari manzillari joylashgan bo’ladi.
2.&&.Chiziqli ro’yhat
Bog’langan ro’yhatlar ustida amallar:
1. Ro’yhatga yangi element qo’shish;
2. Ro’yhatdan elementni o’chirish;
3. Ro’yhatdan element qidirish;
4. Ro’yhat elementlarini chop etish mumkin.
Eslatma: ro’yhatning ixtiyoriy elementini o’chirish, ixtiyoriy joyiga element qo’shish mumkin.
3.&&.Bogʼlangan roʼyxat elementlari mantiqiy tasvirlanishda yozuv kabi ifodalanadi. Dasturda class orqali ifodalash mumkin:
class Node{
public://klass ma’lumotlariga tashqaridan bo‘ladigan murojaatga ruxsat berish
int info; // informatsion maydon
Node* next;// ko‘rsatkichli maydon
};
int main(){
Node *lst = NULL;// ro‘yhat boshi ko‘rsatkichi
}
4.&&.Bir bog’lamli ro’yhatlar
Def.1.
Agar ro’yhat elementlari (tuguni) faqatgina bitta ko’rsatkichlar maydoniga ega bo’lsa, u holda bunday tuzilmaga bir bog’lamli yoki bir tomonlama yo’naltirilgan ro’yhat deyiladi.
Eslatma: Ro’yhat elementlari garchi ketma-ket tuzilmani tashkil etsada, ular xotirada tartibsiz joylashgan bo’lishi mumkin.
Eslatma: Ro’yhat elementlariga murojaat faqat ro’yhat boshidan amalga oshiriladi. Teskari aloqa yo’q.
Bir bogʼlamli roʼyxat tuzilmasi:
struct Node
{
BT inf;
Node* ptr;
};
5.&&.Ikki bog’lamli ro’yhat
Umuman olganda, ikki bog’lamli ro’yhat bu elementlari soni bir xil, faqatgina o’zaro teskari ketma-ketlikda yozilgan ikkita bir bog’lamli ro’yhatdir.
Ikki bogʼlamli roʼyxat tuzilmasi:
struct Node
{
BT inf;
Node* next;
Node* prev;
};
6.&&. Ro'yhat oxiriga element qo'shish
Node* p = new Node;
cin>>numb;
p->info = numb;
p->next = NULL;
if (Lst == NULL)
{ Lst = p;
lastPtr = p;
}
else { lastPtr->next = p;
lastPtr = p;
}
7.&&. Ro'yhat boshidan element o‘chirish
Node* p = new Node;
if (lst == NULL)
cout<<"ro'yhat bo'sh";
else {
p = lst;
lst = p->next ;
delete(p);
}
8.&&. Ro'yhatdan elementni qidirish
Node* Find(Node *Lst, int x)
{
Node *P=Lst;
while(P)
if (P->inf==x) return P;
else P = P->ptr;
return 0;
}
9.&&. Ro'yhat elementlarini ekranga chiqarish
void print(Node *Lst)
{
Node* P = Lst;
while(P) {
cout <<" "<< P->inf<<"-> ";
P = P->ptr;
}
cout << endl;
}
Yüklə 5,04 Kb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə