Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
263
empty(stack) predikat(bul) funksiyasi , “xaqiqat” ma’nosini qaytaradi va aksincha agar stek
bo‘sh bo‘lsa, “yolg‘on” qiymat qaytaradi.
push(stack,element) ko‘rsatilgan elementni ko‘rsatilgan stekka joylashtiradi.
top(stack) ko‘rsatilgan stekdan yuqori elementni o‘chirib tashlaydi.
top(stack) ko‘rsatilgan stekdan yuqorida turgan elementni nus’hasini qaytaradi.
Qayd etamizki ma’lumotlar abstrakt tipini ayrim qo‘llashlar ob’ektlarini yaratish va buzish
operatsiyalarini ko‘zda tutmaydi . Masalan ma’lumotlar abstrakt tipining o‘zgaruvchilarining sodda
qoidasi ma’lumotlar zarur strukturasini noaniq tuzishi mumkin va noaniq nomlashi mumkin. Stek
tipidagi mijoz quyidagi birin ketinligidagi operatorlariga ega bo‘lishi mumkin:
....
create(STK1);
push(STK1, COLOR1);
push(STKl, COLOR2);
if(not
empty(STK1))
then
TEMP :=
top(STKl);
....
Aytaylik stek abstraksiyasining dastlabki qo‘llanilishi uni massiv
elementlarining birin
ketinligi ko‘rinishida taqdim etadi. Keyinchalik xotira boshqarishdagi muammalar tufayli massivga
bog‘liq stek o‘zaro bog‘liq ro‘yxat ko‘rinishida taqdim etila boshlanadi. Ma’lumotlar
abstraksiyasidan foydalanilganligi tufayli bunday o‘zgaruvchilarning stek tipini aniqlovchi kodga
kiritish mumkin ,
lekin bunda , bironta mijoz kodiga o‘zgartirish mumkin emas. Shuningdek
yuqorida keltirilgan operatorlar ketinligini o‘zgartirishsiz qoldirish mumkin.
Albatta har qanday
operatsiya pratakolidagi o‘zgarishlar mijozlar kodlaridagi o‘zgarishlarni talab qilishi mumkin.
Agar stek ma’lumotlar abstrakt tipi sifatida tadbiq etilmagan bo‘lsa, bunday o‘zgarishlar
mijozlar kodlarini o‘zgarishlariga olib kelgan bo‘ladi. Aytaylik stek bilan operatsiyalar. Ada tilida
massiv operatsiyalari sifatida amalga oshirilgan stek taqdimotlarining massivdan bog‘langan
ro‘yxatga o‘zgarishi mijozlar kodlari modifikatsiyasini talab qiladi . Endi ular ko‘rsatkichlarni berish
kerak , lekin stek operatsiyalarini amalga oshiruvchi jarayon parametrlarining massivlari
nomlari
sifatida emas. Bu holatda ayrim operatsiyalar pratakollari o‘zgarishi kerak, oqibatda mijozlar
kodlariga o‘zgarish kirishi mumkin. Xulosa qilib aytamizki ma’lumotlar
abstraksiyasining maqsadi
dasturlarga ma’lumotlar tiplarini aniqlash imkoniyatini berishdir.