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


void PushTail (Queue &Q, int x) {


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

void PushTail (Queue &Q, int x) {

if (Q.size == MAXSIZE) {

printf (“Navbat to’la\n”);

return;

}

Q.tail++;

if (Q.tail >= MAXSIZE) //halqaga birlashtirish

Q.tail=0;

Q.data[Q.tail]=x;

Q.size++;

}

Navbat har doim ham massiv boshidan boshlanmasligi mumkin (ba’zi elementlar oldindan tanlab “olingan”ligi hisobidan), Q.tail bir birlikka oshirgandan keyin massiv chegarasidan chiqib ketmaslikni tekshirib ko’rish zarur bo’ladi. Agarda chegaradan chiqish holati ro’y bersa, yangi element massiv boshiga yoziladi. Yuqoridagi protsedurada “navbat to’la” xatoligi qayta ishlangan. Bunday holda ekranga “Navbat to’la” xabari chiqariladi. Xuddi shunday PushTail, funktsiyasini ham yozish mumkin. Bu funktsiya element qo’shilganda 1, xatolik yuz berganda esa 0 qiymatni qaytaradi.

Shunga alohida diqqat qilish zarurkiQ navbat protsedurada ko’rsatkich orqali berilgan, aslida bu tuzilmaning xotira adresini aniqlaydi.


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