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 zarurki, Q navbat protsedurada ko’rsatkich orqali berilgan, aslida bu tuzilmaning xotira adresini aniqlaydi.
Do'stlaringiz bilan baham: |