Kuinka toteuttaa prioriteettijono C ++: ssa



Tämä artikkeli antaa sinulle yksityiskohtaisen ja kattavan tiedon esimerkkijonon toteuttamisesta C ++: ssa.

Ensisijainen jono on säiliö STL: ssä. Se on samanlainen kuin jono, paitsi että jokaisella prioriteettijonon elementillä on tietty prioriteetti ja kun pudotamme elementtejä prioriteettijonosta, korkeimman prioriteetin elementit ponnahtaa ensin. Ensisijaisen jonon tavoin myös 10 erityyppistä säilöä STL . Säilö on objekti, joka tallentaa tietoja. STL-kontit toteutetaan malliluokkien avulla, joten sen mukauttaminen erityyppisten tietojen säilyttämiseen on helppoa. Tässä viestissä keskustelemme prioriteettijonosta ja siihen liittyvistä käsitteistä yksityiskohtaisesti. Seuraavat osoittimet käsitellään tässä prioriteettijonossa C ++ -artikkelissa,

Jatketaan tämän artikkelin kanssa prioriteettijonoa C ++: ssa





STL: n komponentit

STL koostuu malliluokista ja toiminnoista, joita voidaan käyttää standardina lähestymistapana tietojen tallentamiseen ja käsittelyyn. Keskustellaan STL: n komponenteista

Kontit- STL: ssä on määritelty 10 konttityyppiä, jotka on ryhmitelty 3 luokkaan. Näistä kolmesta prioriteettijonot kuuluvat johdetun säilön luokkaan. Jokaisella säilöluokalla on oma joukko toimintoja, joita voidaan käyttää tietojen käsittelyyn.



Algoritmi - Algoritmi on menetelmä, jota käytetään konttiobjektissa olevien tietojen käsittelyyn. STL tarjoaa monia erityyppisiä algoritmeja, joita voidaan käyttää alustuksessa, hakemisessa, lajittelussa, yhdistämisessä ja kopioinnissa. Algoritmit toteutetaan mallitoimintojen avulla.

miten koota java-ohjelma

Iteraattori- Iteraattori on esine, joka osoittaa kohti säiliön elementtiä. Iteraattorit voivat auttaa siirtämään astian sisältöä. Iteraattorit ovat kuin osoittimia, joita voidaan lisätä ja vähentää. Se toimii linkkinä algoritmin ja säilön välillä. Iteraattoreita käytetään konttiin tallennettujen tietojen käsittelyyn.

Jatketaan tämän artikkelin kanssa prioriteettijonoa C ++: ssa



Kasat ja tärkeysjärjestys

Kuten näimme aiemmin, Priority Queue kuuluu johdettujen säilöjen luokkaan. Muut tämän luokan jäsenet ovat pino ja jono. Nämä johdetut astiat tunnetaan myös konttisovittimina.

Pino, jono ja prioriteettijono tunnetaan johdetuina säiliöinä, koska ne on valmistettu eri sekvenssisäiliöistä. Nämä säilöt eivät tue minkään tyyppisiä iteraattoreita, joita ei käytetä tietojen käsittelyyn.

Mikä on ensisijainen jono?

Yksinkertaisesti sanottuna se on säilö, jota käytimme tietojen tallentamiseen. Jokaiselle tallennetun datan elementille on annettu jokin prioriteetti, joka voi auttaa meitä tallentamaan tietoja loogisessa järjestyksessä.
Syntaksi:prioriteetti_muuttujan_nimi

On tärkeää sisällyttää otsikkotiedosto ohjelmaan prioriteettijonon käyttämiseksi.

prioriteettijono c ++: ssaEsimerkiksi, jos lisäämme prioriteettijonoon 2, 10, 30, 5, 6 painamalla push-toimintoa ja sitten pop-elementit pop-toiminnon avulla, lähtö on 30, 10, 6, 5, 2.

Okei, joten nyt tiedämme prioriteettijonon tarkoituksen tai käytön. Mutta mistä se tiesi, onko 30> 10? Tekeekö se jonkinlaista lajittelua? Tässä vaiheessa kasat tulevat kuvaan. Jos haluat lisätietoja kasoista yksityiskohtaisesti, katso tämä artikkeli.

Kasat ovat puumaisia ​​rakenteita. Sen perusteella, miten lapsielementtien solmut on järjestetty kasaan vanhempien solmujen suhteen, kasat jaetaan kahteen osaan

yksi. Min kasa Min Heapissa pääsolmun arvo on pienempi tai yhtä suuri kuin alisolmujen arvo.

2. Max Heap- Max Heapissa yläsolmun arvo on suurempi tai yhtä suuri kuin alisolmujen arvo.

Huomautus- Prioriteettijono ei lajittele elementtejä jollakin lajittelualgoritmilla, vaan se tallensi tiedot kasan muodossa.

Jatketaan tämän artikkelin kanssa prioriteettijonoa C ++: ssa

jos ehto sql-kyselyssä

Tulostaa kaikki prioriteettijonon elementit

Kun olemme ymmärtäneet prioriteettijonon perusteet, toteutetaan ohjelmat ymmärtämään yleisimmin käytetyt menetelmät prioriteettijonolla

#include #include nimitilan käyttäminen st int main () {priority_queue Prior_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) kun taas (Prior_q.empty () == false) {cout<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }

Tuotos:

30 15 10 9 6 2

Yllä olevassa ohjelmassa käytimme pop (), top () ja push () toimintoja, joita käytetään useimmiten prioriteettijonoa käsiteltäessä. Katsotaanpa joitain menetelmiä, joita voimme käyttää prioriteettijonossa

koko( ): Tämä toiminto palauttaa prioriteettijonon koon

tyhjä (): Tätä toimintoa käytetään tarkistamaan, onko prioriteettijono tyhjä vai ei. Se palauttaa arvon tosi, kun prioriteettijono on tyhjä.

työntää( ): Lisää elementin Prioriteettijonoon.

pop (): Tämä toiminto poistaa prioriteettijonon ylimmän elementin, joka on korkeimman prioriteetin elementti.

vaihda (): Tämä toiminto vaihtaa prioriteettijonon elementit toiseen prioriteettijonoon. Toiminto ottaa prioriteettijonon parametrina.

paikkakunta (): Tällä toiminnolla lisättiin elementti prioriteettijonon yläosaan.

Katsotaanpa vielä yksi ohjelma.

#include #include nimitilan käyttäminen st int main () {priority_queue Prior_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) kun taas (Prior_q.empty () == false) {cout<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }

Tuotos:

2 6 7 9 10 15 30

Tämän avulla olemme päässeet tämän prioriteettijonon loppuun C ++ -artikkelissa. Jos haluat oppia lisää, tutustu Edureka, luotettava verkko-oppimisyritys. Edurekan Java J2EE- ja SOA-koulutus- ja sertifiointikurssit on suunniteltu kouluttamaan sekä ydin- että edistyneitä Java-konsepteja sekä erilaisia ​​Java-kehyksiä, kuten Hibernate & Spring.

Onko sinulla kysymys meille? Mainitse se tämän blogin kommenttiosassa ja otamme sinuun yhteyttä mahdollisimman pian.