10-ma’ruza: navbat tuzilmalari: stek, navbat va dek reja


Stekni massiv yordamida tadbiq qilish


Download 126.31 Kb.
bet2/11
Sana11.11.2021
Hajmi126.31 Kb.
#173577
1   2   3   4   5   6   7   8   9   10   11
Bog'liq
10-hafta maruza

Stekni massiv yordamida tadbiq qilish. Agar stekning maksimal o’lchami oldindan ma’lum bo’lsa, u holda dasturlashda stekni massiv ko’rinishida tadbiq qilish mumkin. Bitta tuzilmada massivning o’zini va uning o’lchamini birlashtirish qulay. Masalan, 100 ta element-belgidan tashkil topgan yangi turni – stekni e’lon qilamiz:

const int MAXSIZE = 100;

struct Stack {

  char data[MAXSIZE];

 int size;

};

Stek bilan ishlashda cho’qqiga element qo’shish (Push) va cho’qqidan elementni o’chirish (Pop) amallarini qaynday bajarish mumkinligini aniqlab olish zarur.



void Push (Stack &S, char x) {

if (S.size == MAXSIZE ) {

printf ("Stek to’la”); return;

}

S.data[S.size] = x;

S.size ++;

}

Massiv elementi data ning tartib raqami 0 dan boshlanadi, shuning uchun ham birinchi o’rinda yangi elementni S.data[S.size] ga yozib olish kerak, shundan so’ng stek o’lchamini bir birlikka oshiramiz. Yuqorida keltirilgan protsedurada “Stek to’la” xatoligi e’tiborga olingan. Bu holatda ekranga “Stek to’la” degan xabar chiqariladi. Xuddi shunday Push funktsiyasini ham yaratish mumkin, bunda agar stekka element qo’shilsa, funktsiya 1 qiymatini, aks holda, ya’ni xatolik bo’lganda 0 qiymtaini qataradi.

Protsedurada S stekka ko’rsatkichlar orqali murojaat qilinayapti, ya’ni stekning xotiradagi adresi orqali murojaat qilinadi. Shuning uchun ham stek ustida bajariladigan barcha amallar bevosita dasturda chaqiruv orqali amalga oshiriladi.


Download 126.31 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10   11




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling