Ushbu usulning afzalliklari: navbatning o'lchami faqat xotira miqdori bilan chegaralanadi. Ustuvor navbat - bu uchta operatsiyani qo'llab-quvvatlaydigan dasturlashdagi mavhum ma'lumotlar turi: · InsertWithPriority: navbatga tayinlangan ustunlikka ega elementni qo'shish · GetNext: Navbatdan oling va eng yuqori ustuvorlikka ega elementni qaytaring. Boshqa nomlar: "PopElement (Off)", "GetMinimum" · PeekAtNext (ixtiyoriy operatsiya): eng yuqori ustuvorlikka ega elementni olmasdan ko'rib chiqing Boshqacha qilib aytganda, ustuvor navbat sizga juftlarni (kalit, qiymat) saqlashga imkon beradi va juft qo'shish, minimal kalit bilan juftlikni topish va minimal kalit bilan juftlikni chiqarish operatsiyalarini qo'llab-quvvatlaydi: · INSERT (kalit, qiymat) - saqlashga juft qo'shadi; · MIN - minimal kalit qiymati bilan juftlikni qaytaradi. · EXTRACT_MIN - minimal kalit qiymati bilan juftlikni qaytaradi, uni xotiradan olib tashlaydi. Ustuvor navbat bir xil tugmalar bilan bir nechta juftlarni saqlashi mumkin. Agar navbat bo'sh bo'lsa, MIN va EXTRACT_MIN operatsiyalari qandaydir maxsus UNDEF konstantasini qaytaradi deb taxmin qilishimiz mumkin. Ustuvor navbatning turli xil ilovalarida semantika va operatsiyalar nomlari farq qilishi mumkin.
Muammoni hal qilish uchun T inf - axborot maydoni (har qanday turdagi ma'lumotlarni qabul qiladi), imzosiz p - navbatda berilgan ustunlik (p>0) maydonlari bilan ishlaydigan Priority strukturasi shablonidan foydalanildi. DKList sinf shablonidan ham foydalaniladi. Sinf ob'ektini yaratishda navbatda turish printsipi tanlanadi (prioritetlarni oshirish yoki kamaytirish orqali) (bool up = 0). Barcha shablon maydonlari tashqi kirish uchun yopiq (himoyalangan). Har bir sinf ob'ektida maydonlar mavjud:
Do'stlaringiz bilan baham: |