Stek (inglizcha stack stek; stek o'qiladi) bu lifo tamoyili bo'yicha tashkil etilgan elementlarning ro'yxati bo'lgan mavhum ma'lumotlar turi
Download 39.61 Kb.
|
Стеки в с узб
else
{
} } Qo'llash sohasi [tahrirlash | kodni tahrirlash] Dasturiy stek ko'rinishi daraxt yoki grafik kabi ma'lumotlar tuzilmalarini bosib o'tish uchun ishlatiladi. Rekursiv funktsiyalardan foydalanganda stek ham ishlatiladi, lekin uning apparati ko'rinishi. Ushbu maqsadlardan tashqari, stek teskari Polsha yozuvlari hisob-kitoblarini amalga oshiradigan stack mashinasini tashkil qilish uchun ishlatiladi. Stek mashinasidan foydalanish misoli Unix dasturi DC. Qo'ng'iroqlar to'plami pastki dasturlardan qaytish nuqtalarini kuzatib borish uchun ishlatiladi. Arifmetik koprotsessorlar, programlanadigan mikrokalkulyatorlar va fort tilida stek hisoblash modeli ishlatiladi [7]. Stek g'oyasi stack mashinasida qatlamlangan dasturlash tillari orasida qo'llaniladi.
1-rasmda siz 6 ta raqamni ko'rishingiz mumkin: 6, 5, 1, 2, 5, 9. Aytgancha, biz ularni bir xil tartibda chiqaramiz. Masalan, 1 raqamini chiqarish uchun avval 6 va 5 raqamlarini, so'ngra allaqachon 1 ni ajratib olishimiz kerak, chunki bu stack, biz bu raqamlarni teskari tartibda qo'shdik. Aniqroq qilib aytganda: 9, 5, 2, 1, 5, 6. Stekda qator kabi indekslar mavjud emas, demak siz ma'lum bir elementga murojaat qila olmaysiz. Buning sababi, stek bog'langan ro'yxatlar asosida tuzilgan. Bu shuni anglatadiki, har bir element (oxirgisidan tashqari - NULL-ga ishora qiladi, agar oddiy so'zlar bilan aytganda, hech narsaga ishora qilmasa) keyingi elementga ko'rsatgichga ega. Ammo ko'rsatgich bo'lmagan element mavjud - birinchisi (yoki uni bosh deb ham atashadi). Ehtimol siz oddiy qatorni ishlatishingiz mumkin bo'lganida, nima uchun bog'langan ro'yxatlardan foydalaning? Bundan tashqari, hatto yangi boshlovchi ham buni tushunish uchun ko'p vaqt talab qilmaydi. Ammo shablonlar stekining butun mohiyati elementlarni qo'shish va olib tashlashdan iborat. Ushbu operatsiyalar doimiy vaqt ichida amalga oshiriladi (bu yaxshi plyus). Aytgancha, ba'zi dasturchilar massivda stek hosil qilishadi. Stakdan foydalanishning bu usuli haqida biroz keyinroq gaplashamiz. C ++ da qanday qilib stek yaratish mumkin Dasturimizning boshida stack andozasidan foydalanish uchun kutubxonani - • Yangi satrda stack so'zlarini yozishimiz kerak. • • Stack usullari Usullar bu navbat va stek kabi konteynerlar uchun ishlatiladigan funktsiyalardir. Endi biz barcha quyidagi funktsiyalarni quyidagi misolda tahlil qilamiz:
Va mana ushbu dastur tahlili: 18-qatorda: push () funktsiyasi yordamida buyumni stakka suramiz. Qavslar tarkibida biz qo'shmoqchi bo'lgan qiymat bo'lishi kerak. Aytgancha, agar siz o'zingizning dasturlaringizda bunday funktsiyalarni yaratmoqchi bo'lsangiz (mutaxassislar kabi) yoki ularning qanday ishlashini bilmoqchi bo'lsangiz, unda bularning barchasi haqida bilib olishingiz mumkin. 22-qatorda: stack bo'shligini tekshirish uchun empty () funktsiyasidan foydalandik. • Agar bu funktsiya haqiqiy bo'lsa, stek toza bo'ladi. • Agar natija noto'g'ri bo'lsa, demak stakda bir narsa bor. 27-qatorda: stakning yuqori qismini ochish uchun pop () funktsiyasi ishlatilgan. Pop () funktsiyasida, push () funktsiyasidan farqli o'laroq, qavs ichida biror narsani ko'rsatishning hojati yo'q, lekin qavsning o'zi bo'lishi kerak. Funktsiyalar uchun ditto: empty () va top ()! 24 va 29 qatorlarda: biz stackning yuqori elementiga murojaat qilishga qaror qildik, buning uchun top () funktsiyasidan foydalanganmiz. Keling, ushbu dasturning natijasi qanday bajarilishini ko'rib chiqamiz: stack.cpp
Download 39.61 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling