Priority queue



Yüklə 0,85 Mb.
tarix26.12.2023
ölçüsü0,85 Mb.
#198573
MTA - MUSTAQIL ISH

PRIORITY QUEUE

M.Muhammadiyev

Reja:

NAZARIY MA’LUMOTLAR

  • 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.

PRIORITY QUEUE

void pop(struct que*p) - navbat oxiridagi elementni o’chiradi

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:
  • priority_queuename;

    priority_queuepq;

    priority_queuepq;

    priority_queuepq;

Asosiy funksiyalar

#include

#include

#include

using namespace std;

int main() {

priority_queue pq;

pq.push(12);

pq.push(5);

pq.push(3);

pq.push(8);

while (!pq.empty()) {

cout << pq.top() << " ";

pq.pop();

}

}

#include

#include

#include

int main() {

priority_queue pq;

pq.push(7.7);

pq.push(9.1);

pq.push(8.12);

while (!pq.empty()) {

cout << pq.top() << "\n";

pq.pop();

}

}

#include

#include

#include

using namespace std;

int main() {

priority_queue pq;

pq.push(-12);

pq.push(7);

pq.push(1.23);

while(!pq.empty()) {

cout << pq.top() << "\n";

pq.pop();

}

}

XULOSA

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.

E’TIBORINGIZ UCHUN RAHMAT!


Yüklə 0,85 Mb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin