Ularning funksiyalarini ta


Download 21.9 Kb.
bet1/2
Sana19.06.2023
Hajmi21.9 Kb.
#1624382
  1   2
Bog'liq
6-javoblar


1. Adapterlar standarti shablon kutubxonasining alohida toifasidir (vakilidir). Adapterlar yangi tushunchalar yoki ilovalar emas, balki mavjud kutubxona tushunchalarining o‘ziga xos, tez-tez ishlatiladigan maqsadlar uchun moslashtirishlari. Bu moslashtirish (adaptatsiyalash) ko‘pincha adapterning so‘rovlarnnig asosiy tushunchasiga asoslanib, funksiyalarini cheklash orqali 2.Kutubxona konteynerlarning adapterlari, iteratorlar va funksiyalarni o‘z ichiga oladi. 3. Juda keng va tez-tez ishlatiladigan ma’lumotlar tuzilmalari; - har qanday realizatsiyani alohida bajarilishi kerak emas. 4.Ularning funksiyalarini taʻminlash uchun STL standart konteyneri har qanday moslashtirishda tayanch sifatida push_back, pop_back, yoki pop_front amallardan (adapter turiga qarab) foydalanish mumkin; 5. Birinchi navbatda konteynerlarning adapterlari uchun<stack>, kabi sinflarni dasturga qo‘shish lozim. 6. Stek (stack, ma’lumotlar yig‘indisi):
Stekda uning elementlariga faqat bir uchidan murojaat qilish mumkinligi bilan xarakterlanadi va stekning yuqori qismi deb ataldi. 7. LIFO (Last In - First Out, birinchi kirgan oxiri chiqadi) tamoyili bo‘yicha faoliyat ko‘rsatuvchi ma’lumotlar to‘plamidir. 8. Stekdan farqli o‘laroq, navbat FIFO (First In — First Out birinchi kirgan birinchi chiqadi) tamoyili bo‘yicha faoliyat yuritadigan ma’lumotlar to‘plamidir. 9. Bu usulni bir uchiga oqib kirish, keyin boshqa uchidan oqib chiqadigan quvurga o‘xshatish mumkin. 10. navbatda pop_front() usuli vector konteyner ustiga qurib bo‘lmaydi, lekin uni ro‘yxat konteyner uchun qurish mumkin. 11. Deque sinfi uchun front()push_back(), pop_front()), usullari har qanday konteynerlarda ishlatiladi (faqat pop_front() usuli borlarida). 12 Shuning uchun navbat uchun yasaladigan obyektda, yaʻni deque sinfida top() usuli o‘rniga front() usuli ishlatiladi. 13. Ma’lum bir tartibda qayta ishlanishi kerak ma’lumotlarni uchun umumi y ma’lumotlar tuzilishiga asoslangan to‘plami bu – stek va navbatdir (stack, deque). 14. Bu ma’lumotlarni qayta ishlash tartibini amalga oshirish uchun dasturchi o‘zining navbat funksiyasi tashkil qilish lozim. 15.Stekka qo‘shilgan oxirgi qiymat birinchi bajariladi va aksincha, stekka qo‘shilgan birinchi qiymat oxirgi bajariladi. Shunday qilib, ma’lumotlar tuzilmasining o‘zi chaqirishlarning to‘g‘ri belgilangan tartibda berilishini taʻminlaydi. 16. Navbat ma’lumotlar tuzilmasi bo‘lib (yuqorida aytib o‘tilganidek) bu LILO tamoyilini qo‘llab quvvatlaydi (last in-last out: oxirgi kirgan oxirgi chiqadi). C++ allaqachon tayyor STL konteyner-navbat (queue) mavjud. 17. Agar C++ da navbat shablonini ishlatmoqchi bo‘lsangiz, avvalkutubxonasini ulashingiz kerak. Keyin navbatni eʻlon qilish uchun quyidagi sintaktikni ishlatishingiz kerak:
queue; 18. empty() – navbat bo‘sh yokib o‘shmasligini tekshiradi. Agar bo‘sh bo‘lsa true, aks holda false qiymat qaytaradi. 19. Odatda, agar dasturchi bunday navbatni yarasa, massiv navbat deb ataladi.
Shuningdek, buni massiv deb ham aytish mumkin, ammo massiv so‘zi C++ da bor. Shuning uchun, navbat shablon deb aytish ham mumkin va bir xil tarzda uni chaqiriladi. Buning uchun 2 ta qo‘shimcha o‘zgaruvchi yaratish kerak. Birinchisi start bo‘lsin va navbatning birinchi elemenitini bildirsin. Ikkinchisi ends bo‘lsin va navbatning oxirgi elemenitini bildirsin. 20. Ustuvor navbat (Priority_queue) bilan navbat (queue) – oddiy navbatdek, lekin ustuvor navbatga yangi element qo‘shilsa, shunda navbat kamayish tartibida saralanadi. Shu tariqa ustuvor navbatda eng katta element birinchi o‘ringa chiqadi. 21. Ustivor navbatda yangi element qo‘shish uchun push() funksiyasi, birinchi o‘rindagi elementiga murojaat qilish uchun top() funksiyasi ishlatiladi. Front() – funksiyasi ishlatilmaydi. Shuningdek, back() – oxirgi elementga murojaat funksiyasi ham ishlatilmaydi.  22. Ikki tomonlama navbat oddiy navbatga qaraganda tezroq ishlaydi. 23. Dasturda bu kabi amallar ko‘p bajarish kerak bo‘lsa, ro‘yxatlar eng yaxshi tanlov bo‘ladi. Aslida, Dek-bu boshida yoki oxirida elementlarning tezroq qo‘shilishi imkoni bo‘lgan vektordir. Shu bilan birga, Dekning boshqa amallari vektorlarning tegishli amallari bilan bir xil ishlaydigan vaqtga (amallar ko‘paysa sekinroq) ega 24. Ikki tomonlama navbatlar imkoniyatlarni boshqarishni taʻminlamaydi va xotira qayta ajratilganda unga joy aniqlan maydi. Xususan, boshida yoki oxirida elementlarni qo‘shish boshqa har qanday qo‘shish yoki o‘chirish kabi ikki tomonlama navbatda elementlar bilan bog‘liq barcha ko‘rsatkichlarni, murojaatlarni iteratorlar bekor qilmaydi. Biroq, xotiraning taqmislanishi vektorlarga qaraganda yaxshiroq ishlashi mumkin, chunki ular odatda ichki tuzilishiga ko‘ra, ikki tomonlama navbatlar xotirani qayta joylashtirishda barcha elementlarining nusxalash shart emas. 25.Qulaylik yaratib berish uchun. 28.

Download 21.9 Kb.

Do'stlaringiz bilan baham:
  1   2




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling