logo

Prioritetinė eilė C++

Prioritetinė eilė C++ yra išvestinis STL konteineris, kuriame atsižvelgiama tik į aukščiausio prioriteto elementą. Eilė laikosi FIFO politikos, o prioritetinėje eilėje elementai pateikiami pagal prioritetą, t. y. pirmiausia iškyla aukščiausio prioriteto elementas.

Tam tikrais aspektais ji panaši į įprastą eilę, tačiau skiriasi šiais būdais:

sumažinimo išnašos
  • Prioritetinėje eilėje kiekvienas eilės elementas yra susietas su tam tikru prioritetu, tačiau eilės duomenų struktūroje prioritetas neegzistuoja.
  • Elementas, turintis aukščiausią prioritetą prioritetinėje eilėje, bus pašalintas pirmiausia, o eilė po jo FIFO (pirmas-pirmas-išeina) politika reiškia, kad pirmas įterptas elementas bus ištrintas pirmiausia.
  • Jei yra daugiau nei vienas elementas su tuo pačiu prioritetu, bus atsižvelgta į elemento eiliškumą.

Pastaba: Prioritetinė eilė yra išplėstinė įprastos eilės versija, išskyrus tai, kad elementas, turintis didžiausią prioritetą, pirmiausia bus pašalintas iš prioritetinės eilės.

Prioritetinės eilės sintaksė

 priority_queue variable_name; 

Supraskime prioritetinę eilę per paprastą pavyzdį.

Prioritetinė eilė C++

Aukščiau pateiktoje iliustracijoje elementus įterpėme naudodami funkciją push (), o įterpimo operacija yra identiška įprastoje eilėje. Bet kai ištrinsime elementą iš eilės naudodami pop() funkciją, pirmiausia bus ištrintas elementas, kurio prioritetas yra didžiausias.

Prioritetinės eilės nario funkcija

Funkcija apibūdinimas
stumti () Jis įterpia naują elementą į prioritetinę eilę.
pop () Tai pašalina iš eilės viršutinį elementą, kuris turi aukščiausią prioritetą.
viršuje () Ši funkcija naudojama aukščiausiam prioritetinės eilės elementui adresuoti.
dydis () Jis nustato prioritetinės eilės dydį.
tuščia() Jis patikrina, ar eilė tuščia, ar ne. Remiantis patvirtinimu, jis grąžina būseną.
apsikeisti () Ji pakeičia prioritetinės eilės elementus kita to paties tipo ir dydžio eile.
vieta () Ji įterpia naują elementą prioritetinės eilės viršuje.

Sukurkime paprastą prioritetinės eilės programą.

 #include #include using namespace std; int main() { priority_queue p; // variable declaration. p.push(10); // inserting 10 in a queue, top=10 p.push(30); // inserting 30 in a queue, top=30 p.push(20); // inserting 20 in a queue, top=20 cout&lt;<'number of elements available in 'p' :'<<p>In the above code, we have created a priority queue in which we insert three elements, i.e., 10, 30, 20. After inserting the elements, we display all the elements of a priority queue by using a while loop.<p></p> <p> <strong>Output</strong> </p> <pre> Number of elements available in &apos;p&apos; :3 30 20 10 zzzzz/ </pre> <p> <strong>Let&apos;s see another example of a priority queue.</strong> </p> <pre> #include #include using namespace std; int main() { priority_queue p; // priority queue declaration priority_queue q; // priority queue declaration p.push(1); // inserting element &apos;1&apos; in p. p.push(2); // inserting element &apos;2&apos; in p. p.push(3); // inserting element &apos;3&apos; in p. p.push(4); // inserting element &apos;4&apos; in p. q.push(5); // inserting element &apos;5&apos; in q. q.push(6); // inserting element &apos;6&apos; in q. q.push(7); // inserting element &apos;7&apos; in q. q.push(8); // inserting element &apos;8&apos; in q. p.swap(q); std::cout &lt;&lt; &apos;Elements of p are : &apos; &lt;&lt; std::endl; while(!p.empty()) { std::cout &lt;&lt; p.top() &lt;&lt; std::endl; p.pop(); } std::cout &lt;&lt; &apos;Elements of q are :&apos; &lt;&lt; std::endl; while(!q.empty()) { std::cout &lt;&lt; q.top() &lt;&lt; std::endl; q.pop(); } return 0; } </pre> <p>In the above code, we have declared two priority queues, i.e., p and q. We inserted four elements in &apos;p&apos; priority queue and four in &apos;q&apos; priority queue. After inserting the elements, we swap the elements of &apos;p&apos; queue with &apos;q&apos; queue by using a swap() function.</p> <p> <strong>Output</strong> </p> <pre> Elements of p are : 8 7 6 5 Elements of q are : 4 3 2 1 </pre> <hr></'number>

Pažiūrėkime dar vieną prioritetinės eilės pavyzdį.

 #include #include using namespace std; int main() { priority_queue p; // priority queue declaration priority_queue q; // priority queue declaration p.push(1); // inserting element &apos;1&apos; in p. p.push(2); // inserting element &apos;2&apos; in p. p.push(3); // inserting element &apos;3&apos; in p. p.push(4); // inserting element &apos;4&apos; in p. q.push(5); // inserting element &apos;5&apos; in q. q.push(6); // inserting element &apos;6&apos; in q. q.push(7); // inserting element &apos;7&apos; in q. q.push(8); // inserting element &apos;8&apos; in q. p.swap(q); std::cout &lt;&lt; &apos;Elements of p are : &apos; &lt;&lt; std::endl; while(!p.empty()) { std::cout &lt;&lt; p.top() &lt;&lt; std::endl; p.pop(); } std::cout &lt;&lt; &apos;Elements of q are :&apos; &lt;&lt; std::endl; while(!q.empty()) { std::cout &lt;&lt; q.top() &lt;&lt; std::endl; q.pop(); } return 0; } 

Aukščiau pateiktame kode paskelbėme dvi prioritetines eiles, ty p ir q. Keturis elementus įterpėme į „p“ prioriteto eilę ir keturis į „q“ prioriteto eilę. Įdėję elementus, 'p' eilės elementus sukeičiame eilės 'q' elementais, naudodami funkciją swap().

Išvestis

skaityti iš csv failo java
 Elements of p are : 8 7 6 5 Elements of q are : 4 3 2 1