Ўзбекистон республикаси ахборот технологиялари ва коммуникацияларини ривожлантириш вазирлиги


Download 16.47 Kb.
Sana20.10.2020
Hajmi16.47 Kb.
#134992
Bog'liq
Lab


ЎЗБЕКИСТОН РЕСПУБЛИКАСИ АХБОРОТ ТЕХНОЛОГИЯЛАРИ ВА КОММУНИКАЦИЯЛАРИНИ РИВОЖЛАНТИРИШ ВАЗИРЛИГИ

МУХАММАД АЛ-ХОРАЗМИЙ НОМИДАГИ ТОШКЕНТ АХБОРОТ ТЕХНОЛОГИЯЛАРИ УНИВЕРСИТЕТИ

Labarotoriya - 1

Algoritimlarni Loyihalash

Bajardi: Toshev Islombek

Gruh: 218-18

Ustuvor navbat (ing. priority queue)- bu mavhum ma'lumotlarning turi bo'lib, ular odatdagi navbat yoki ustunlar singari ma'lumotlar tuzilmasiga ega, ammo bundan tashqari har bir element u bilan bog'liq bo'lgan "ustuvorlik" ga ega. Ustuvorlik navbatida yuqori ustuvorlik past ustuvor elementdan oldin beriladi. Ba'zi bir amaliy dasturlarda, agar ikkita element bir xil ustuvorlikka ega bo'lsa, ular navbatga qo'yilgan tartibda xizmat qiladi, boshqa tartibga solishda esa xuddi shu ustuvor elementlarning tartibi aniqlanmagan.
Ko'pincha ustuvor navbatlar ko'pincha uyum bilan amalga oshirilsa ham, ular kontseptual ravishda uyumlardan farq qiladi. Vazifalarning ustuvor yo'nalishi - "ro'yxat qilish" yoki "karta" kabi mavhum tushuncha; Ro'yxat bog'langan ro'yxat yoki massiv yordamida bajarilishi mumkinligi singari, ustuvorlik navbatini bir qator yoki boshqa usullar bilan amalga oshirish mumkin, masalan tartibsiz qator.
Navbat(queue) - bu ma'lumotlar to'plamini o'z ichiga olgan mavhum ma'lumotlarning tuzilishi. Navbatda FIFO mexanizmi, ya'ni avval kiritilgan element o'chiriladi. Boshqacha qilib aytganda, eng oxirgi qo’shilgan element birinchi navbatda olib tashlanadi.
Demak Navbat(queue) va Ustuvor navbat(priority queue) ning asosiy farqlaridan biri Navbatda elementlat qanday tartibda kiritilsa shunday joylashadi. Ustuvor navbatda esa elementlar qanday kiritilishidan qat’i nazar tartiblangan holatda joylashadi.

Misol:


//Navbat(queue)

#include

#include

using namespace std;

int main()

{

queue qu;



qu.push(1);

qu.push(3);

qu.push(8);

qu.push(2);

qu.push(7);

for(int i=0; i<5; i++)

{

cout << qu.front() << " ";



qu.pop();

}

}



Natija: 1 3 8 2 7

Misol:


//Ustuvor navbat(priority queue)

#include

#include

using namespace std;

int main()

{

priority_queue qu;



qu.push(1);

qu.push(3);

qu.push(8);

qu.push(2);

qu.push(7);

for(int i=0; i<5; i++)

{

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



qu.pop();

}

}



Natija: 8 7 3 2 1
Download 16.47 Kb.

Do'stlaringiz bilan baham:




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