Yuqorida keltirilgan funktsiyalarning C++ tilidagi ifodasi quyidagicha bo‘ladi:
Stekdan elementni o‘qish amalini bajarishdan oldin uning bo‘sh yoki bo‘sh emasligi tekshiriladi. Agar u bo‘sh bo‘lsa, Empty funktsiyasi true qiymatini qaytaradi. Agar Empty false qiymatini qaytarsa, demak, stek bo‘sh emas va undan elementlarni tanlab olish mumkin.
Procedure StackTop(var I: Integer; S: Stack);
begin
I:=S[StackCount];
end;
Navbat
Kundalik turmushdagi navbat tushunchasi hammaga ma‘lum. Uni xizmat ko‘rsatishga berilayotgan buyurtmalar ketma-ketligi deb tasavvur qilish mumkin.
Dasturlashda ham navbat deb ataluvchi ma‘lumotlar tuzilmasi mavjud bo‘lib, u real navbatlarni modellashtirish uchun ishlatiladi. Navbat ham yarimstatik tuzilma bo‘lib, uning uzunligi ham, tarkibi ham vaqt davomida o‘zgaruvchandir.
Navbatning mantiqiy tuzilishini grafik shaklda tasvirlash 2.9-rasmda berilgan. Navbat to‘rtta - A, V, S va D elementlardan iborat bo‘lib, A element navbat boshida, D element esa oxirida joylashgan. Elementni chiqarib tashlash navbatning faqat boshidan, elementni kiritish esa - faqat oxiridan bajariladi, ya‘ni birinchi bo‘lib navbatga kiritilgan element chiqarib yuborishda ham birinchi bo‘ladi.
Navbat
Shu sabab navbatni —birinchi kiritilgan birinchi chiqarib yuboriladi” - FIFO (First In First Out) printsipida tashkillashtirilgan ro‘yxat deb qarash mumkin.
Stek bir tomondan ochiq ro‘yxat bo‘lsa, navbat ikki tomonlama (boshi va oxiri) ochiq ro‘yxatdir. Shunga mos holda navbat uchun 2 ta ko‘rsatkich (biri boshi uchun, ikkinchisi oxiri uchun) olinadi. Shuning uchun ham bu tuzilma odatda elementlarni qayta ishlash bir tomonlama amalga oshiriluvchi ro‘yxat deb ham yuritiladi. Bunday tuzilmadagi ma‘lumotlar ular kelib tushishiga qarab qayta ishlanadi.
Do'stlaringiz bilan baham: |