Al-xorazmiy nomidagi toshkent axborot texnologiyalari universiteti



Download 76,14 Kb.
bet3/3
Sana30.12.2021
Hajmi76,14 Kb.
#94521
1   2   3
Bog'liq
Malumotlar tuzulmasi Mustaqil ish

Priority Queue – Bu oddiy queue ga o’xshash lekin unda ozroq farq qiladi.

Oddiy Queue da First-In-First-Served prinsipi amal qilsa Ustuvor navbatlarda esa har bir massiv elementida ustuvorlikni ofidalovchi yana bir qiymat mavjud bo’ladi. Va aynan shu element queue ni elementlarini ifodalab beradi.

Priority Queue ni asosiy amallari:


  • insert / enqueue - navbatning orqa tomoniga element qo'shing.

  • Remove / dequeue - navbatning old qismidan biror narsani olib tashlang.

Bu strukturada massivga element qo’shish va ularni o’chirish quyidagi ko’rinishda amalga oshiriladi:

Informatika fanida har bir element qo'shimcha ravishda "ustuvorlik" ga ega bo'lgan oddiy navbat yoki stek ma'lumotlar tuzilishiga o'xshash mavhum ma'lumotlar turi. Prioritetli navbatda, ustuvorligi yuqori bo'lgan element ustunligi past bo'lgan elementdan oldin xizmat qiladi. Ba'zi dasturlarda, agar ikkita element bir xil ustuvorlikka ega bo'lsa, ular ularga berilgan tartibda xizmat ko'rsatiladi, boshqa dasturlarda esa bir xil ustuvorlikka ega elementlarning buyurtmasi aniqlanmagan.

Imtiyozli navbatlar ko'pincha uyum bilan amalga oshirilsa-da, ular kontseptual jihatdan uyumlardan ajralib turadi. Prioritet navbat - bu "ro'yxat" yoki "xarita" kabi tushuncha; ro'yxatni bog'langan ro'yxat yoki qator bilan amalga oshirish mumkin bo'lganidek, ustuvor navbatni uyum yoki tartibsiz qator kabi turli xil usullar bilan amalga oshirish mumkin.

Ustuvor navbatlar asosida ishlovchi massivda element qo’shish java dasturlash tilida quyidagicha ifodalanadi:

void insert(int data){

int i = 0;


if(!isFull()){

// agar navbat bo’sh yoki to’lmagan bo’lsa

if(itemCount == 0){

intArray[itemCount++] = data;

}else{

//


for(i = itemCount - 1; i >= 0; i-- ){

//


if(data > intArray[i]){

intArray[i+1] = intArray[i];

}else{

break;


}

}


//

intArray[i+1] = data;

itemCount++;

}

}



}
int removeData(){

return intArray[--itemCount];

}
int main() {

/* */


insert(3);

insert(5);

insert(9);

insert(1);

insert(12);
// ------------------

// index : 0 1 2 3 4

// ------------------

// queue : 12 9 5 3 1

insert(15);
// ---------------------

// index : 0 1 2 3 4 5

// ---------------------

// queue : 15 12 9 5 3 1

if(isFull()){

printf("Queue to’lgan!\n");

}
//

int num = removeData();

printf("Element o’chirildi: %d\n",num);

// ---------------------

// index : 0 1 2 3 4

// ---------------------

// queue : 15 12 9 5 3
//

insert(16);


// ----------------------

// index : 0 1 2 3 4 5

// ----------------------

// queue : 16 15 12 9 5 3


//

insert(17);

insert(18);
// ----------------------

// index : 0 1 2 3 4 5

// ----------------------

// queue : 16 15 12 9 5 3

printf("Eng boshidagi element %d\n - ",peek());
printf("----------------------\n");

printf("index : 5 4 3 2 1 0\n");

printf("----------------------\n");

printf("Queue: ");

while(!isEmpty()){

int n = removeData();

printf("%d ",n);

}


}
Natija:

Queue to’lgan!

Element o’chirildi: 1

Eng boshidagi element: 3

----------------------

index : 5 4 3 2 1 0

----------------------

Queue: 3 5 9 12 15 16

Xulosa:

Ustuvor navbat - bu har bir element ustuvorlik bilan bog'liq bo'lgan va uning ustuvorligiga muvofiq xizmat ko'rsatadigan navbatning maxsus turi. Agar bir xil ustuvorlikka ega elementlar yuzaga kelsa, ular navbatdagi navbatga muvofiq xizmat ko'rsatiladi.

Odatda ustunlikni belgilash uchun elementning o'zi hisobga olinadi.

Masalan, eng yuqori qiymatga ega element eng yuqori ustuvor element sifatida qabul qilinadi. Ammo, boshqa holatlarda, biz eng past ustuvor element sifatida eng past qiymatga ega elementni qabul qilishimiz mumkin. Boshqa hollarda, biz ehtiyojlarimizga qarab ustuvor vazifalarni belgilashimiz mumkin.

Foydalanilgan adabiyotlar va saytlar:

1. Томас Х.Кормен «Алгоритмы. Вводный курс» 2014 г.



2.fayllar.org, https://en.wikipedia.org, Ziyonet axborot talim portal

3. Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford (2001) [1990]. "Section 6.5: Priority queues". Introduction to Algorithms (2nd ed.). MIT Press and McGraw-Hill. pp. 138–142. 
Download 76,14 Kb.

Do'stlaringiz bilan baham:
1   2   3




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish