Kuidas rakendada prioriteetset järjekorda C ++ -s



See artikkel annab üksikasjalikud ja kõikehõlmavad teadmised prioriteetide järjekorra rakendamise kohta C ++ versioonis koos näidetega.

Prioriteetne järjekord on konteiner STL-is. See sarnaneb järjekorraga, välja arvatud see, et igal prioriteedijärjekorra elemendil on kindel prioriteet ja kui me prioriteedijärjekorrast elemente poputame, hüppavad esimesena kõrgeima prioriteediga elemendid. Sarnaselt prioriteetsele järjekorrale on ka siin 10 erinevat tüüpi konteinerit STL . Konteiner on objekt, mis salvestab andmeid. STL-konteinerid viiakse ellu malliklasside abil, mistõttu on selle kohandamine erinevat tüüpi andmete hoidmiseks lihtne. Selles postituses käsitleme üksikasjalikult prioriteedijärjekorda ja sellega seotud mõisteid. Järgmisi näpunäiteid käsitletakse C ++ artiklis selles prioriteedijärjekorras,

Selle artikliga C ++ prioriteetse järjekorra kohta jätkatakse



STL-i komponendid

STL koosneb malliklassidest ja funktsioonidest, mida saab kasutada andmete salvestamise ja töötlemise standardse lähenemisena. Arutleme STL-i komponentide üle

Konteinerid STL-is on määratletud 10 tüüpi konteinereid ja need on rühmitatud 3 kategooriasse. Nendest kolmest kuuluvad prioriteetsed järjekorrad tuletatud konteineri kategooriasse. Igal konteineriklassil on oma funktsioonide komplekt, mida saab andmetega manipuleerida.



Algoritm - Algoritm on meetod, mida kasutatakse konteineriobjektis olevate andmete töötlemiseks. STL pakub palju erinevaid algoritme, mida saab kasutada initsialiseerimisel, otsimisel, sortimisel, ühendamisel ja kopeerimisel. Algoritme rakendatakse mallifunktsioonide abil.

Iteraator- Iteraator on objekt, mis osutab konteineris oleva elemendi poole. Iteraatorid võivad aidata konteineri sisu liikumisel. Iteraatorid on nagu osutid, mida saab suurendada ja vähendada. See toimib algoritmi ja konteineri vahelise seosena. Iteraatoreid kasutatakse konteinerisse salvestatud andmetega manipuleerimiseks.

Selle artikliga C ++ prioriteetse järjekorra kohta jätkatakse



Hunnikud ja eelisjärjekord

Nagu me varem nägime, kuulub Priority Queue tuletatud konteinerite kategooriasse. Teised selle kategooria liikmed on virna ja järjekord. Neid tuletatud mahuteid tuntakse ka kui mahutiadaptereid.

Virna, järjekorda ja prioriteetset järjekorda nimetatakse tuletatud mahutiteks, kuna need on valmistatud erinevatest järjestuse mahutitest. Need konteinerid ei toeta ühtegi iteraatorit, mida neid ei kasutata andmete manipuleerimiseks.

Mis täpselt on prioriteetne järjekord?

Lihtsamalt öeldes on see konteiner, mida kasutasime andmete salvestamiseks. Igal salvestatud andmete elemendil on teatud prioriteet, mis aitab meil andmeid loogilises järjekorras salvestada.
Süntaks:prioriteedi_muutuja muutuja_nimi

Prioriteedijärjekorra kasutamiseks on oluline lisada päisefail programmi.

prioriteetjärjekord c ++ -sNäiteks kui lisame 2, 10, 30, 5, 6 oma prioriteetsesse järjekorda, kasutades tõukefunktsiooni, ja seejärel pop-funktsioone kasutades pop-funktsiooni, on väljundiks 30, 10, 6, 5, 2.

Okei, nii et nüüd teame prioriteetse järjekorra eesmärki või kasutamist. Aga kuidas ta sai teada, kas 30> 10? Kas see teeb mingisugust sorteerimist? Sel hetkel tulevad pildile hunnikud. Hunnikute üksikasjaliku teabe saamiseks vaadake seda artiklit.

Kuhjad - kuhjad on puulaadsed struktuurid. Lähtuvalt sellest, kuidas alamelementide sõlmed on paigutatud hunnikusse vanemate sõlmede suhtes, jagatakse kuhjad kaheks osaks

üks. Min Heap- Min Heapis on vanemasõlme väärtus väiksem või võrdne alamsõlmede väärtusega.

2. Max Heap- Max Heapis on vanemasõlme väärtus suurem või võrdne alamsõlmede väärtusega.

Märge- Prioriteedijärjekord ei sorteeri elemente mingi sortimisalgoritmi abil, vaid salvestas andmed kuhja kujul.

Selle artikliga C ++ prioriteetse järjekorra kohta jätkatakse

Kõigi prioriteetse järjekorra elementide printimine

Olles mõistnud prioriteetsete järjekordade põhialuseid, rakendame programme, et mõista kõige sagedamini kasutatavaid prioriteetse järjekorraga meetodeid

#include #include nimeruumi kasutamine st int main () {prioriteedi_prioriteet_pri_q prior_q.push (10) prior_q.push (30) prior_q.push (6) prior_q.push (2) Prior_q.push (15) Prior_q.push (9) Prior_q.push (7) while (Prior_q.empty () == false) {cout<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }

Väljund:

30 15 10 9 6 2

Ülaltoodud programmis kasutasime funktsioone pop (), top () ja push (), mida kasutatakse enamasti prioriteetse järjekorra käsitlemisel. Vaatame mõningaid meetodeid, mida saame kasutada eelisjärjekorras

suurus (): See funktsioon tagastab prioriteedijärjekorra suuruse

tühi( ): Seda funktsiooni kasutatakse kontrollimaks, kas prioriteedijärjekord on tühi või mitte. See tagastab tõese, kui prioriteetne järjekord on tühi.

lükake (): Lisab elemendi prioriteedijärjekorda.

pop (): See funktsioon eemaldab prioriteedijärjekorra ülemise elemendi, mis on kõrgeima prioriteediga element.

vahetada (): See funktsioon vahetab prioriteedijärjekorra elemendid teise prioriteedijärjekorraga. Funktsioon võtab parameetrina prioriteedijärjekorra.

töökoht (): Selle funktsiooni abil lisati element prioriteetsesse järjekorda.

Vaatame veel ühte programmi.

#include #include nimeruumi kasutamine st int main () {prioriteedi_prioriteet_pri_q prior_q.push (10) prior_q.push (30) prior_q.push (6) prior_q.push (2) Prior_q.push (15) Prior_q.push (9) Prior_q.push (7) while (Prior_q.empty () == false) {cout<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }

Väljund:

2 6 7 9 10 15 30

fibonacci number c ++

Sellega jõuame C ++ artiklis selle prioriteedijärjekorra lõppu. Kui soovite rohkem teada saada, vaadake järgmist autor Edureka, usaldusväärne veebipõhine õppefirma. Edureka Java J2EE ja SOA koolitus- ja sertifitseerimiskursus on mõeldud selleks, et õpetada teid nii Java-põhimõistete kui ka edasijõudnute kontseptsioonide jaoks koos erinevate Java-raamistikega nagu Hibernate & Spring.

Kas teil on meile küsimus? Palun mainige seda selle ajaveebi kommentaaride jaotises ja võtame teiega ühendust niipea kui võimalik.