Kako implementirati prioritetno vrsto v C ++



Ta članek vam bo zagotovil podrobno in izčrpno znanje o tem, kako s primeri uporabiti prioritetno čakalno vrsto v jeziku C ++.

Prednostna vrsta je vsebnik v STL. Podobno je čakalni vrsti, razen dejstva, da ima vsak element prednostne čakalne vrste določeno prednost in ko elemente iz prednostne čakalne vrste iztaknemo, se najprej pojavijo elementi z najvišjo prioriteto. Tako kot prednostna vrsta je tudi tukaj 10 različnih vrst zabojnikov STL . Vsebnik je objekt, ki hrani podatke. Vsebniki STL se izvajajo s pomočjo razredov predlog, zato ga je enostavno prilagoditi tako, da vsebuje različne vrste podatkov. V tem prispevku bomo podrobno obravnavali čakalno vrsto Priority in koncepte, povezane z njo. Naslednji kazalci bodo zajeti v tej prednostni vrsti v članku C ++,

Nadaljujemo s tem člankom o prednostni vrsti v jeziku C ++





Sestavni deli STL

STL je sestavljen iz razredov in funkcij predloge, ki se lahko uporabljajo kot standardni pristop za shranjevanje in obdelavo podatkov. Pogovorimo se o komponentah STL

Posode- V STL je opredeljenih 10 vrst zabojnikov, ki so razvrščeni v 3 kategorije. Od teh 3 prednostne vrste spadajo v kategorijo izpeljanega vsebnika. Vsak razred vsebnika ima svoj nabor funkcij, s katerimi je mogoče upravljati s podatki.



Algoritem - Algoritem je metoda, ki se uporablja za obdelavo podatkov v objektu vsebnika. STL ponuja veliko različnih vrst algoritmov, ki jih je mogoče uporabiti pri inicializaciji, iskanju, razvrščanju, združevanju, kopiranju. Algoritmi se izvajajo s pomočjo funkcij predloge.

Iterator- Ponavljalec je objekt, ki kaže na element v vsebniku. Iteratorji lahko pomagajo pri premikanju po vsebini vsebnika. Iteratorji so kot kazalci, ki jih lahko povečujemo in zmanjšujemo. Deluje kot povezava med algoritmom in vsebnikom. Iteratorji se uporabljajo za obdelavo podatkov, shranjenih v vsebniku.

Nadaljujemo s tem člankom o prednostni vrsti v jeziku C ++



Kupe in prednostna vrsta

Kot smo že videli, Priority Queue spada v kategorijo izpeljanih zabojnikov. Drugi člani te kategorije so sklad in čakalna vrsta. Ti izpeljani vsebniki so znani tudi kot adapterji za vsebnike.

Stack, queue in prioritetna vrsta so znani kot izpeljani vsebniki, saj so narejeni iz različnih vsebnikov zaporedja. Ti vsebniki ne podpirajo nobene vrste iteratorjev in se ne uporabljajo za obdelavo podatkov.

Kaj točno je prednostna vrsta?

Z enostavnimi besedami gre za vsebnik, ki smo ga uporabljali za shranjevanje podatkov. Vsakemu elementu shranjenih podatkov je dodeljena neka prednostna naloga, ki nam lahko pomaga pri shranjevanju podatkov v logičnem vrstnem redu.
Sintaksa:prednostna_vrst_ime spremenljivke

Pomembno je, da v program vključite datoteko z glavo, da uporabite prednostno vrsto.

prednostna vrsta v c ++Če na primer dodamo 2, 10, 30, 5, 6 v našo prioritetno čakalno vrsto s pomočjo funkcije push in nato pop elemente uporabimo s funkcijo pop, bo izhod 30, 10, 6, 5, 2.

V redu, zdaj torej vemo, kakšen je namen ali uporaba prednostne čakalne vrste. Kako pa je vedel, če je 30> 10? Ali opravlja kakšno sortiranje? Na tej točki se pojavijo kupčki. Za podrobnejše informacije o kopicah si oglejte ta članek.

Kupe - Kupe so drevesne strukture. Glede na to, kako so vozlišča podrejenih elementov razporejena v kopico glede na nadrejena vozlišča, so kupe razdeljene na 2 dela

eno. Min kup V Min Heap je vrednost nadrejenega vozlišča manjša ali enaka vrednosti podrejenih vozlišč.

2. Max Heap- V Max Heap je vrednost nadrejenega vozlišča večja ali enaka vrednosti podrejenih vozlišč.

Opomba- Prednostna vrsta elementov ne razvrsti z uporabo nekega algoritma za razvrščanje, temveč je podatke shranila v obliki kopice.

Nadaljujemo s tem člankom o prednostni vrsti v jeziku C ++

namestite php na Windows 7

Tiskanje vseh elementov prednostne čakalne vrste

Po razumevanju osnov prednostne čakalne vrste uvedimo programe za razumevanje najpogosteje uporabljenih metod s prednostno čakalno vrsto

#include #include using namespace std int main () {prior_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), medtem ko (Prior_q.empty () == false) {cout<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }

Izhod:

30 15 10 9 6 2

V zgornjem programu smo uporabili funkcije pop (), top () in push (), ki se večino časa uporabljajo med obravnavanjem prednostne čakalne vrste. Oglejmo si nekaj metod, ki jih lahko uporabimo s prednostno čakalno vrsto

velikost (): Ta funkcija vrne velikost prioritetne čakalne vrste

prazno( ): Ta funkcija se uporablja za preverjanje, ali je prednostna vrsta prazna ali ne. Vrne true, če je prednostna vrsta prazna.

push (): Vstavi element v prednostno vrsto.

pop (): Ta funkcija odstrani zgornji element prednostne vrste, ki je element z najvišjo prioriteto.

swap (): Ta funkcija zamenja elemente prednostne čakalne vrste z drugo prednostno vrsto. Funkcija za parameter vzame prednostno vrsto.

emplace (): Ta funkcija je bila uporabljena za dodajanje elementa na vrh prednostne čakalne vrste.

Poglejmo še en program.

#include #include using namespace std int main () {prior_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), medtem ko (Prior_q.empty () == false) {cout<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }

Izhod:

2 6 7 9 10 15 30

S tem smo prišli do konca te prednostne čakalne vrste v članku C ++. Če želite izvedeti več, si oglejte Edureka, zaupanja vredno podjetje za spletno učenje. Edurekin tečaj za usposabljanje in certificiranje Java J2EE in SOA je zasnovan tako, da vas usposobi za temeljne in napredne koncepte Java, skupaj z različnimi Java okviri, kot sta Hibernate & Spring.

Imate vprašanje za nas? Prosimo, omenite to v oddelku za komentarje tega spletnega dnevnika, mi pa se vam bomo javili v najkrajšem možnem času.