|
Ma’ruza Stek
|
bet | 1/4 | Sana | 16.02.2024 | Hajmi | 261,72 Kb. | | #157914 |
Bog'liq Ma\'ruza 5. Steklar
Ma’ruza 5.
Stek.
Stek - berilganlarni saqlash uchun ishlatiladigan oddiy berilganlar strukturasi bo’lib, stekda berilganlarning kelish tartibi muhim ahamiyatga ega.
Kafeteriyadagi plastinkalar to'plami bu stekga yaxshi misol bo’ladi. Plastinkalar tozalangan va tepaga joylashtirilgani uchun stekga qo'shiladi. Stekning tepasidan boshlab plastinka olinishi kerak. Stekga joylashtirilgan birinchi plastinka oxirgi ishlatiladigan plastinka hisoblanadi.
Ta'rif: stek - qo'shish va o'chirish cho’qqi deb ataluvchi bir uchida amalga oshiriladigan tartiblangan ro'yxatdir.
Oxirgi kiritilgan element birinchi bo’lib olib tashlanadi. Stek "oxirgi kiruvchi, birinchi chiqadi" tamoyili asosida ishlaydi ya’ni LIFO (Last In First Out).
Stek holatini o'zgartiruvchi ikkita jarayonga maxsus nomlar beriladi. Elementni stekga qo’shish jarayoni push, elementni stekdan olib tashlash jarayoni pop deyiladi. Elementni bo'sh stekdan olishga urinishga stekni bo'shatish (опустошением стека) deb ataladi, yangi elementni to'liq stekga qo’shishga urinish esa to'lib ketish deyiladi. Odatda bunday holatlar istisno sifatida qabul qilinadi.
Masalan quyidagi rasm orqali stekni tushunishga xarakat qilamiz:
Stekni qo’llanilishiga doir misol
Ofisdagi ish kunini ko'rib chiqing. Aytaylik, dasturchi uzoq muddatli loyiha ustida ishlayapti. Keyin loyiha menejeri unga muhimroq bo'lgan yangi vazifani beradi. Dasturchi uzoq muddatli loyihani chetga surib, yangi vazifa ustida ishlay boshlaydi. Shu payt telefon qo'ng'irog’i jiringlab qoldi va bu eng muhim vazifadir, chunki unga darhol javob berish kerak. Dasturchi joriy vazifani bajarishni vaqtincha to’xtatadi va telefonga javob beradi. Qo'ng'iroq tugagach, vaqtincha chetga surib qo'yilgan vazifa yana davom ettiriladi va shu tarzda ish davom etadi. Yana boshqa qo'ng'iroqqa javob berishga to’g’ri kelsa xuddi oxirgi marta bajargan amallar takrorlanishi mumkin, ammo oxir-oqibat yangi vazifa tugaydi va dasturchi bir chetga surib qo’ygan uzoq muddatli loyihaga qaytishi mumkin.
“Stek” - berilganlarning abstrakt turi
Stek quyidagi amallarni (usullarni) amalga oshiradi:
• int Count: stekda saqlangan elementlar sonini qaytaruvchi xususiyat.
•bool IsEmpty: stekning bo'sh yoki bo'lmasligini aniqlaydigan xususiyat.
Stekning asosiy amallari:
• Push(T data): data berilganini stekga qo’shish.
• T Pop(): stekdan oxirgi kiritilgan elementni olib tashlaydi va qiymat sifatida qaytaradi.
Stekning yordamchi amallari va xususiyatlari:
• T Peek(): oxirgi kiritilgan elementni o’chirib tashlamasdan qaytaradi.
• Print() stekning barcha elementlarini chop etadi.
Istisnolar
Stek ustuda amallarni bajarishga urinish ba'zan istisno deb ataladigan xatoga olib kelishi mumkin. Ya’ni istisnolar stek ustuda bajarib bo'lmaydigan amallar amalga oshiriganda yuzaga keladi. Agar stek bo'sh bo'lsa, Pop va Peek amallarini bajarib bo'lmaydi. Bo'sh stek bilan Pop yoki Peek amalini bararishga urinish istisnoga olib keladi. To'liq stekga Push orqali yangi element qo’shishga urinish istisnoga olib keladi.
|
| |