Priority queue (PQ) – xuddi stack va queue kabi ma’lumotlar to’plami. Yagona farqi – qaysi element o’chirilishida. Stack da oxirgi qo’shilgan element birinchi bo’lib o’chirilsa, queue da birinchi qo’shilgan element birinchi o’chiriladi. PQ da esa biz ustuvor bo’lgan elementni (eng katta yoki eng kichik elementni) o’chiramiz.
void push(struct que*p, void* val) - navbat boshiga element qo’shish. Bu yerda val kiritilayotgan ma’lumotga ko’rsatkich
char*top(struct que p) - navbat boshidagi tugun axborot qismiga ko’rsatgich qaytarish
int empty(struct que p) - navbat bo’shligini tekshirish
int size(struct que p) - navbat elelmentlari soni
Universal navbat har bir tuguni axborot qismi void turidagi ko’rsatkichdan iborat strukturadir:
struct slist_node
{
void* info;
struct slist_node* next;
};
Bu yerda beg birinchi tugunga ko’rsatkich, end oxirgi tugunga ko’rsatkich, width ma’lumot hajmi, size navbatdagi elementlar soni
struct que
{
struct slist_node* beg;
struct slist_node* end;
int size;
int width;
};
PQ ikki amalni bajaradi: qo’shish (insert) va maksimumni (yoki minimumni) o’chirish (remove).
PQ ikki amalni bajaradi: qo’shish (insert) va maksimumni (yoki minimumni) o’chirish (remove).
Ustuvor navbatga yangi element qo‘shilsa, shunda navbat kamayish tartibida saralanadi. Shu tariqa ustuvor navbatda eng katta element birinchi o‘ringa chiqadi. Ustuvor navbat shablonidan quyidagi sintaktis orqali foydalanish kerak:
Ustuvor navbatga yangi element qo‘shilsa, shunda navbat kamayish tartibida saralanadi. Shu tariqa ustuvor navbatda eng katta element birinchi o‘ringa chiqadi. Ustuvor navbat shablonidan quyidagi sintaktis orqali foydalanish kerak:
Men bu ishni tayyorlash davomida ko’p kitob va internet saytlaridan foydalandim hamda ulardan o’zimga kerakli ma’lumotlarni oldim. Menda C++ dasturiga bo’lgan qiziqish paydo bo’ldi. Umid qilamanki, bu dasturlash tili siz uchun ham qiziqarli bo’ladi!
Foydalanilgan adabiyotlar
Wikipediya
Stenli Lippman. С++ dasturlash tili. O’quv qo’llanma. Villiams - М.: 2014.
Sidxarma Rao. C++ ni 21 kunda o’rganish. Villiams - М.: 2013.
Nikita Kultin. Microsoft Visual C++ misollar va topshiriqlar. BXVPeterburg - Peterburg.:2010.
Sh.F.Madraximov, S.M.Gaynazarov, С++ tilida programmalash asoslari. Т. 2009.