|
Berilganlarning sodda strukturalari: stek, navbat, ro‘yxat, deklar
|
bet | 2/2 | Sana | 27.09.2024 | Hajmi | 0,55 Mb. | | #272644 |
Bog'liq Algoritm 2 amaliyStack Stack bu yana bir chiziqli ma’lumot tuzilmasi bo’lib, u ham Linked listning maxsus bir ko’rinishi hisoblanadi. Stackda har bir tugunda ma’lumot va o’zidan oldingi tugun adresi saqlanadi. Shuning uchun unda faqat oxirgi qo’shilgan ma’lumot ustidagina qandaydir amal bajarish mumkin. Ko’pchilikni “hayotini saqlab qolgan” CTRL+Z operatsiyasini ko’z oldingizga keltiring. Har safar bu tugmalarni bosganda oxirgi qilgan ishlaringiz orqadan oldinga qarab chiqib keladi (bekor qilinadi). Huddi shu yerda stack tuzilmasi ishlatilganini ko’rishimiz mumkin. - Stackga hayotiy misol sifatida bir uchi yopiq bo’lgan trubani keltirish mumkin. Trubaga do’stingiz bir nechta turli rangdagi sharlar tashladi. Endi siz sharlar rangini bilish uchun faqatgina do’stingiz oxirgi bo’lib truba ichiga tashlagan sharning ranginigina ko’ra olasiz. Qolgan sharlarni ko’rish uchun do’stingiz tashlagan tartibdan teskari tartibda ularni olib chiqishingiz kerak bo’ladi.
- Stack ustidagi asosiy amallar
- Stackga element qo’shish (Push)
- Stackdan elementni olish. Element o’chiriladi (Pop)
- Stackdagi top elementni ko’rish. Element o’chirilmaydi (Peek)
- Stackni bo’shlikka tekshirish (isEmpty)
- Navbat - bu FIFO (First In - First Out - "birinchi kelgan – birinchi ketadi") prinsipi boʻyicha qurilgan ma‘lumotlar strukturasi. Navbatda, agar siz avval kiritilgan elementni qoʻshsangiz, u birinchi boʻlib chiqadi. Agar 4 ta element qoʻshsangiz, birinchi qoʻshilgan element birinchi boʻlib chiqadi. Navbat qanday ishlashini tushunish uchun siz xarid qilish navbatini tasavvur qilishingiz mumkin va siz uning oʻrtasida turibsiz, shunda siz kassaga qarama-qarshi boʻlasiz, avval siz oldingizdagi barcha odamlarga xizmat qilishingiz kerak boʻladi. Ammo navbatda turgan oxirgi odam uchun kassir oʻzidan boshqa barcha odamlarga xizmat qilishi kerak. 3-rasm. Navbat ma’lumotlar strukturasi Rasmda 7 ta raqam mavjud: 2, 4, 7, 1, 4, 9, 10. Agar ularni ajratib olishimiz kerak boʻlsa, biz ularni rasmdagi kabi tartibda chiqaramiz! Masalan, 4-raqamni ajratib olish uchun avval 2-raqamga, soʻngra 4- raqamga xizmat koʻrsatishimiz kerak.
- Navbatning metodlari. Navbat bilan ishlash uchun funksiyalarni bilish kerak: push(), pop(), front(), back(), empty(). 1. Navbatga yangi element qoʻshish uchun push() funksiyasidan foydalanish kerak. Qavslar tarkibida biz qoʻshmoqchi boʻlgan qiymat boʻlishi kerak. 2. Agar biz birinchi elementni olib tashlashimiz kerak boʻlsa, pop() funksiyasi bilan ishlashimiz kerak. Qavslar ichida endi koʻrsatilishi kerak boʻlgan narsa yoʻq, lekin qoidalarga koʻra, ular albatta mavjud boʻlishi kerak. Ushbu funksiyalarga argument kerak emas: empty(), back() va front(). 3. Agar navbatning birinchi elementiga murojaat qilishingiz kerak boʻlsa, unda front() funksiyasi kerak. 4. back() funksiyasi navbatdagi oxirgi elementga kirishga yordam beradi. 5. Navbatning boʻshligini bilish uchun empty() funksiyasidan foydalanish mumkin. -Agar sizning navbatingiz boʻsh boʻlsa, u true qiymatini qaytaradi. -Agar unda biror narsa boʻlsa, u false qaytadi.
|
| |