O‘ZBEKISTON RESPUBLIKASI RAQAMLI
TEXNOLOGIYALAR VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT
AXBOROT TEXNOLOGIYALARI UNIVERSITETI
SAMARQAND FILIALI
KOMPYUTER INJINIRING MASOFAVIY TA’LIM
FAKULTETI
Ma'lumotlar tuzilmasi va algoritmlari
AMALIY ISHI
Bajaruvchi: Xamidov Jonibek
Tekshiruvchi:
Qudratov Rustam.
Samarqand-2024
Mavzu: Stek, navbat va deklarni massiv yordamida tasvirlash va
ular ustida amal bajarish algoritmlari
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.
Rekursiv funksiyalar ham huddi shunday ishlaydi. Oxiriga yetmagan funksiyalar
(return bo’lmagan) kelgan joyidan rekursiya stekiga tashlab ketilaveradi va keyin
ular orqadan oldinga qarab bajariladi. Operatsiyalarning bunday ko’rinishda
bajarilish jarayoni LIFO (Last In First Out) deb ataladi.
Stacklar bilan ishlashda doim eng oxirgi element adresi “esda saqlanadi” va bu
element ko’pincha top deb ataladi.
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)
Queue (Navbat)
Queue ham Stack singari chiziqli ma’lumot tuzilmasi bo’lib, hayotdagi oddiy
navbat singari ishlaydi. Shu sababli Stackdan farqli o’laroq Queueda eng oxirgi
qo’shilgan elementga emas birinchi qo’shilgan elementga birinchi bo’lib “xizmat
ko’rsatiladi”. Operatsiyalarni bunday ko’rinishda amalga oshirilishi esa FIFO (First
In First Out) deb ataladi. Queueni tasavvur etish uchun quyidagi rasmning o’zi
yetarli deb o’ylayman
Queuega dasturiy misollar sifatida printerga narsalarni chop qilishni uzatishni, yoki
protsessor operatsiyalarni amalga oshirish jarayonini misol keltirish mumkin
(protsessor ishlashi har doim ham FIFO ga asoslanmaydi). Yanayam qiziqrog’i
hammamiz yoshligimizda (yoki hozir ham) o’ynashni yaxshi ko’rgan iloncha
o’yinini Queuega misol qilish mumkin
Queueda biz ikkita tugun adresini xotirada saqlashimiz kerak bo’ladi. Navbat
boshida turgan element uchun front, eng oxirgi element uchun rear yoki back.
|