Malumotlar tuzilmasi - Dasturlash uslublari va paradigmalar

|
Dasturlash uslublari va paradigmalar
|
bet | 22/30 | Sana | 26.01.2024 | Hajmi | 0,97 Mb. | | #146384 |
Bog'liq PARADIGMA YN28. Malumotlar tuzilmasi.
Ma'lumotlar tuzilmasi - bu operatsiyalarni samarali bajarish uchun ma'lumotlarni tashkil qilish va saqlash usuli. Turli xil ma'lumotlar tuzilmalari har xil turdagi ilovalar va operatsiyalar uchun mo'ljallangan.
Ma'lumotlar tuzilmalarining ba'zi keng tarqalgan turlari:
Arrays:
Indeks yoki key orqali aniqlanadigan elementlar jamlanmasi.
Elementlar ketma-ket xotira maydonlariga joylashtiriladi.
Arraylar o’z indekslari yordamida elementlarga doimiy kirishni taminlaydi.
Linked lists:
Chiziqli malumotlar tuzilmasi va bunda elementlar node larda saqlanadi, har bir node keyingi node ga yo’naltirilgan bo’ladi.
Linked list elementlarni samarali qo’shish va o’chirish imkoniyatlarini taminlaydi.
Stacks:
2 ta asosiy operatsiyani bajaradigan elementlarning jamlanmasi. Push(boshiga element qo’shadi), Pop(boshidan element o’chiradi).
Last In, First Out(LIFO) prinsipliga amal qiladi.
Queue:
2 ta asosiy operatsiyani bajaradigan elementlarning jamlanmasi.
enqueue(oxiriga element qo’shadi) va dequeue(Boshidan element o’chiradi)
First In, First Out(FIFO) prinsipliga amale qiladi.
Malumotlar tuzilmasini tanlash, dasturning malum bir talablariga bog’liq. Misol uchun, bajarilishi kerak bo’lgan operatsiya turlari va ushbu operatsiyalarning samaradorligiga.
Har bir malumotlar tuzilmasining o’ziga xos afzalliklari va kamchiliklari mavjud. Shular orasidan to’g’risini tanlash samarali algoritmni loyihalash uchun muhimdir.
29.Tuzilmali dasturlash
Dastur yagona tuzilma sifatida tuzilgan dasturlash yondashuvi sifatida belgilanishi mumkin. Bu shuni anglatadiki, kod ko'rsatmalarni ketma-ket ko'rsatma bilan bajaradi. U GOTO va boshqalar kabi har qanday bayonot yordamida bir buyruqdan boshqasiga o'tish imkoniyatini qo'llab-quvvatlamaydi. Shuning uchun bu yondashuvdagi ko'rsatmalar ketma-ket va tuzilgan tarzda bajariladi. Strukturaviy dasturlash yondashuvini qo'llab-quvvatlaydigan tillar:
C ; C++; Java; C#… va boshqalar
Tuzilmali dasturlash yondashuvining afzalliklari:
O'qish va tushunish osonroq
Foydalanish uchun qulay
Saqlash osonroq
Mashinaga asoslangan bo'lish o'rniga asosan muammoga asoslangan
Rivojlanish osonroq, chunki u kamroq kuch va vaqt talab qiladi
Nosozliklarni tuzatish osonroq
Mashinadan mustaqil, asosan.
Tuzilmali dasturlash usulining kamchiliklari:
Mashinadan mustaqil bo'lganligi sababli, mashina kodiga aylantirish uchun vaqt kerak bo'ladi.
O'zgartirilgan mashina kodi montaj tili bilan bir xil emas.
Dastur ma'lumotlar turlari kabi o'zgaruvchan omillarga bog'liq. Shuning uchun uni yo'lda zarurat bilan yangilash kerak.
Odatda bu yondashuvning rivojlanishi tilga bog'liq bo'lgani uchun ko'proq vaqt talab etadi. Assembler tili bo'lsa, ishlab chiqish kamroq vaqt talab etadi, chunki u mashinaga o'rnatiladi.
Quyidagi bir necha tuzilmalar misollarini ko'rsataman:
Ro'yxat (List): Ma'lumotlar ro'yxati. Misol: Python-da list, C++-da std::vector.
Qator (Queue): Ma'lumotlarni o'rin-o'riniga qabul qilib, birinchi kelgan ma'lumot birinchi chiqadi. Misol: Python-da queue.Queue, Java-da Queue.
Stek (Stack): Ma'lumotlarni o'zaro qabul qilib, birinchi kelgan ma'lumot birinchi chiqadi. Misol: Python-da list (stekning funksiyalari bilan), C++-da std::stack.
Bog’langan Ro'yxat (Linked List): Ma'lumotlarning to'plamasi, har bir ma'lumot o'zidan keyingi ma'lumotni ko'rsatadi. Misol: Python-da va C++-da o'zgaruvchilar orqali (Node lar orqali) yaratilgan linked list.
Hash Ro'yxati (Hash Table): Ma'lumotlarni boshqarish uchun boshqaruv (hash) funksiyalari orqali yaratilgan ro'yxat. Misol: Python-da dict, Java-da HashMap.
Derevo (Tree): Hierarchik tuzilgan ma'lumotlarni saqlash uchun ishlatiladi. Misol: Java-da TreeMap, Python-da binary tree implementatsiyalari.
|
| |