|
L-xorazmiy nomidagi toshkent axborot texnologiyalari universiteti qarshi filiali kompyuter injerining fakulteti
|
bet | 1/3 | Sana | 04.01.2024 | Hajmi | 0,7 Mb. | | #129886 |
Bog'liq 3 musReja Bog’langan ro’y’hatlar haqida tushuncha-fayllar.org 6 topwiriq, Мутахассис фанларни ўқ метод. МАГИСТР, furye-qatori-funksiyalarni-furye-qatoriga-yoyish, 5, Buyruqlar tizimi arxitekturasi Reja 1-fayllar.org, Xristianlikning paydo bo‘lishi, aqidalari, asosiy yo‘nalishlari,
MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI QARSHI FILIALI
KOMPYUTER INJERINING FAKULTETI
3-kurs KI-19-21 guruh talabasi
Fan: Ma’lumotlar tuzilmasi va algoritimlar
№3
MUSTAQIL ISHI
Qabul qildi ______________ Abdullayev R
Topshirdi ______________ Amirova G
Reja:
1.Chiziqli bog‘langan ro‘yxatlar
2.Bog‘langan ro‘yxatlar haqida tushunchalar
3.Stek. Stekni massiv yordamida tasvirlash va ular ustida amal bajarish algoritmlari. 4.Navbat. Navbatni massiv yordamida tasvirlash va ular ustida amal bajarish algoritmlari. 5. Dek. Dekni massiv yordamida tasvirlash va ular ustida amal bajarish algoritmlari. Stek, navbat va dek.
“Ro‘yxat” turdagi ma'lumotlar tuzilmalari. Ro‘yxatlarni statik va dinamik tarzda amalga oshirish. Bir va ikki bog‘lamli ro‘yxatlar va ular ustida amal bajarish algoritmlari .Reja: Bog’langan ro’y’hatlar haqida tushunchaBog’langan ro’y’hatlar klassifikasiyasiBog’langan ro’y’hatlarni mantiqiy tasvirlashBir va ikki bog’lamli ro’y’hatlar ustida amallarRoʼyxatlar 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.EslatmaRoʼyxatni tashkil etuvchi elementlar soni chegaralanmagan boʼlishi mumkin. Roʼyxatni mantiqiy tasvirlashOshkormas(massiv)Oshkor(koʼrsatkichli)Def.1.1.Roʼyxatni tashkil etuvchi elementlar soni n ga roʼyxat uzunligi deyiladi.Bog’langan ro’y’hatlar 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.izohInformatsion maydonda ro’y’hat elementi ma’lumotlari, ko’rsatkichlar maydonida esa mazkur element bilan bog’langan tuzilmaning boshqa elementlari manzillari joylashgan bo’ladi.Misol.P1va P2– o’zaro bog’langan elementlarni adreslarini o’z ichiga oluvchi ko’rsatkichlardir. Ma’lumotlarР1Р2Ma’lumotlarР1Р2Ma’lumotlarР1Р2izohBog’langan ro’yhat elementining ko’rsatkichlari maydoni soni bir nechta va turli xil bo’lishi mumkin.Def.2.Ro’yhat m bog’lamli deyiladi, agar ro’yhatning hech bo’lmaganda bitta elementi ko’pi bilan tuzilmaning m ta elementi bilan o’zaro bog’langan bo’lsa.Def.3.Agar bog’langan ro’yhat elementlari mavjud bo’lmasa, u holda bunday ro’yhat bo’sh ro’yhat deyiladi.- bo’sh ro’yhat3 bog’lamli ro’yhatga misolDef.4.Agar element ko’rsatkichi 0 yoki bo’sh (NULL) bo’lsa, u holda bu element ro’yhatning eng so’nggi elementi hisoblanadi. Def.5.Bog’langan ro’yhatda yana shunday bir ko’rsatkich mavjud bo’lib, u ro’yhat boshini ko’rsatadi (Lst).Lst=NULLDef.3.Ro’yhatning afzalligiElementlarni qo’shish, o’chirish qulay va oson;Ro’yhat uzunligi faqatgina kompyuter hotirasi xajmi va ko’rsatkich razryadiga bog’liq;Elementlarni dinamik tarzda qo’shish va o’chirish mumkin. Ro’yhatda element manzilini ro’yhatdagi raqami bo’yicha aniqlash murakkab;Ko’rsatkichlar maydoniga qo’shimcha xotira vzarur bo’ladi ( massivda kerak emas);Ro’yhatda ishlash massivga nisbatan sekinroq amalga oshadi (sababi, ro’yhat elementiga murojaat undan oldingi elementlar orqali bo’ladi);Ro’yhat elementlari xotirada tartibsiz joylashgan, bu esa protsessorni keshlashtirishga salbiy ta’sir ko’rsatadi; Bog’langan ro’yhatlarda vektor amallarni bajarish qiyinroq (masalan, yig’indini hisoblash);Ro’yhatning kamchiligiBog’langan royhatlarchiziqlichiziqsizБир боғламлиIkki bog’lamliBir bog’lamliKo’p bog’lamliIkki bog’lamliizohChiziqli ro’yhatlarda elementlar orasidagi bog’liqlik qat;iy tartiblangan bo’lib, element ko’rsatkichi o’zidan navbatdagi yoki oldingi element adresini o’z ichiga oladi. Misol. Chiziqli ro’yhatBog’langan ro’yhatlar ustida amallarRo’yhatga yangi element qo’shish;ro’yhatdan elementni o’chirish;ro’yhatdan element qidirish;ro’yhat elementlarini chop etish mumkin.Eslatma: ro’yhatning ixtiyoriy elementini o’chirish, ixtiyoriy joyiga element qo’shish mumkin. 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 berishint info; // informatsion maydonNode* next;// ko‘rsatkichli maydon};int main(){Node *lst = NULL;// ro‘yhat boshi ko‘rsatkichi}Bir bog’lamli ro’yhatlarDef.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. Ikki bog’lamli ro’yhatUmuman olganda, ikki bog’lamli ro’yhat bu elementlari soni bir xil, faqatgina o’zaro teskari ketma-ketlikda yozilgan ikkita bir bog’lamli ro’yhatdir.Bir va ikki bog’lamli ro’yhatlarni e’lon qilishBir bogʼlamli roʼyxat tuzilmasi:struct Node {BT inf;Node* ptr;}; Ikki bogʼlamli roʼyxat tuzilmasi:struct Node {BT inf; Node* next; Node* prev; };Ro'yhat oxiriga element qo'shishNode* p = new Node;cinnumb;p-info = numb;p-next = NULL;if (Lst == NULL){ Lst = p;lastPtr = p;}else { lastPtr-next = p;lastPtr = p;}Ro'yhat boshidan element o‘chirishNode* p = new Node;if (lst == NULL)coutelse {p = lst;lst = p-next ;delete(p);}Ro'yhatdan elementni qidirishNode* Find(Node *Lst, int x){Node *P=Lst;while(P)if (P-inf==x) return P;else P = P-ptr;return 0;} Ro'yhat elementlarini ekranga chiqarishvoid print(Node *Lst){Node* P = Lst;while(P) {cout inf";P = P-ptr;}cout
rYarimstatik malumotlar tuzilmalari
Yarimstatik malumotlar tuzilmalari deb nomlangan shunaqa tuzilmalar borki, ular bazi bir xususiyatlari bilan statik tuzilmalarga, bazi bir xususiyatlari bilan dinamik tuzilmalarga oxshagan boladi. Yani dastur bajarilishi mobaynida tuzilma uzunligining ozgaruvchanligi dinamiklik xususiyati bolsa, elementlari xotirada ketma-ket joylashishi statik tuzilmalarga oxshash boladi. Yarimstatik malumotlar tuzilmasi bir xil toifadagi elementlar ketma-ketligi hisoblanadi va unga
Steklar
Navbatlar
Deklar
kiradi. Deyarli barcha zamonaviy dasturlash tillarida yuqorida keltirilgan tuzilmalat bilan ishlash uchun kutubxonalar mavjud. Va ular konteyner korinishida realizatsiya qilingan. Shuni aytib otish kerakki, bu yarimstatik tuzilmalarni dasturda statik tuzilma korinishida xam va dinamik tuzilma korinishida xam ifodalash mumkin, faqat yarimstatiklik shartlarini buzmagan holda, yani bu tuzilmalarning barchasida ixtiyoriy elementlarga tashqaridan murojaat qilib bolmaydi.
Steklar
Stek - chiziqli malumotlar tuzilmasi bolib, malumotlarni kiritish va chiqarish uning bir tomonidan amalga oshiriladi. Bunday stek kafeteriyadagi tarelkalar toplamini eslatadi. Yangi elementlar stekning uchiga qoyiladi va yuqori qismidan olinadi. Oxirgi qoyilgan element stek uchidan birinchi bolib olinadi. Shu sababli, stek LIFO (last in first out) tuzilishidagi malumotlar tuzilmasi boladi, yani, oxirgi kelgan birinchi ketadi prinsipi boyicha ishlaydi.
Stek olchami cheklangan bolsa, elementni stekka qoyilishi stekda kamida bitta elementga joy bolgan holdagina amalga oshiriladi. Shuning uchun stek ustida amal bajarishdan oldin stek holatini tekshirish lozim boladi,yani
Stekka element kiritilishidan oldin joy borligini tekshirish;
Stekdan elementni ochirishdan oldin element borligini tekshirish.
Steklar bilan ishlash uchun C++ tilida tayyor kutubxona mavjud bolib, unga dastur boshida #include deb murojaat qilish kerak. Dasturda stek elon qilish uchun quyidagicha yozish kerak.
|
| |