Kako implementirati prioritetni red u C ++



Ovaj će vam članak pružiti detaljno i sveobuhvatno znanje o tome kako implementirati prioritetni red u C ++ s primjerima.

Prioritetni red je spremnik u STL-u. Sličan je redu čekanja, osim činjenice da svaki element reda prioriteta ima određeni prioritet i kad elemente iz reda prioriteta izbacimo, prvo se iskaču elementi s najvišim prioritetom. Kao i prioritetni red, u sustavu postoji 10 različitih vrsta spremnika STL . Spremnik je objekt koji pohranjuje podatke. STL spremnici implementirani su uz pomoć klasa predložaka, stoga je jednostavno prilagoditi ga različitim vrstama podataka. U ovom ćemo postu detaljno razgovarati o prioritetnom redu i konceptima povezanim s njim. Sljedeći uputi bit će obrađeni u ovom prioritetnom redu u članku C ++,

string do datuma pretvoriti u javi

Nastavljamo s ovim člankom o Prioritetnom redu u jeziku C ++





Komponente STL-a

STL se sastoji od klasa predložaka i funkcija koje se mogu koristiti kao standardni pristup za pohranu i obradu podataka. Razgovarajmo o komponentama STL-a

Kontejneri- Postoji 10 vrsta spremnika definiranih u STL-u i oni su grupirani u 3 kategorije. Od ova 3, prioritetni redovi pripadaju kategoriji izvedenog spremnika. Svaka klasa spremnika ima svoj skup funkcija kojima se može manipulirati podacima.



Algoritam - Algoritam je metoda koja se koristi za obradu podataka prisutnih u objektu spremnika. STL pruža mnogo različitih vrsta algoritama koji se mogu koristiti za inicijalizaciju, pretraživanje, sortiranje, spajanje, kopiranje. Algoritmi se provode uz pomoć funkcija predloška.

Iterator- Iterator je objekt koji usmjerava prema elementu u spremniku. Iteratori vam mogu pomoći u kretanju kroz sadržaj spremnika. Iteratori su poput pokazivača koji se mogu povećavati i smanjivati. Djeluje kao veza između algoritma i spremnika. Iteratori se koriste za manipulaciju podacima pohranjenim u spremniku.

Nastavljamo s ovim člankom o Prioritetnom redu u jeziku C ++



Hrpe i prioritetni red

Kao što smo ranije vidjeli, Prioritetni red pripada kategoriji izvedenih spremnika. Ostali članovi ove kategorije su stog i redovi čekanja. Ovi izvedeni spremnici poznati su i kao adapteri spremnika.

Stog, red i prioritetni red poznati su kao izvedeni spremnici jer su izrađeni od različitih spremnika u slijedu. Ovi spremnici ne podržavaju bilo koju vrstu iteratora i ne koriste se za manipulaciju podacima.

Što je točno prioritetni red?

Jednostavnim riječima, to je spremnik koji smo koristili za pohranu podataka. Svakom elementu pohranjenih podataka dodijeljen je neki prioritet koji nam može pomoći u pohrani podataka u logičnom redoslijedu.
Sintaksa:prioritet_reda naziv_ varijable

Važno je uključiti zaglavnu datoteku u program kako biste koristili prioritetni red.

red prioriteta u c ++Na primjer, ako dodamo 2, 10, 30, 5, 6 u naš prioritetni red pomoću funkcije push, a zatim pop elemente pomoću funkcije pop, izlaz će biti 30, 10, 6, 5, 2.

kako instalirati hadoop u linux

U redu, sada znamo svrhu ili upotrebu reda prioriteta. Ali kako je znalo da je 30> 10? Radi li nekakvo sortiranje? U ovom trenutku hrpe dolaze u sliku. Pojedinosti o hrpama saznajte u ovom članku.

Hrpe - hrpe su strukture nalik drveću. Na temelju toga kako su čvorovi podređenih elemenata raspoređeni u hrpu u odnosu na roditeljske čvorove, hrpe su podijeljene u 2 dijela

jedan. Min hrpa- U Min Heap, vrijednost nadređenog čvora manja je ili jednaka vrijednosti podređenih čvorova.

2. Max Heap- U Max Heap, vrijednost nadređenog čvora veća je ili jednaka vrijednosti podređenih čvorova.

Bilješka- Prioritetni red ne razvrstava elemente pomoću nekog algoritma za sortiranje, već je podatke pohranio u obliku hrpe.

Nastavljamo s ovim člankom o Prioritetnom redu u jeziku C ++

Ispis svih elemenata reda prioriteta

Nakon razumijevanja osnova prioritetnog reda, provedimo programe za razumijevanje najčešće korištenih metoda s prioritetnim redom

#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) while (Prior_q.empty () == false) {cout<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }

Izlaz:

30 15 10 9 6 2

U gore navedenom programu koristili smo funkcije pop (), top () i push () koje se koriste većinu vremena dok se radi s prioritetnim redom. Pogledajmo neke metode koje možemo koristiti s prioritetnim redom

veličina (): Ova funkcija daje veličinu reda prioriteta

prazno (): Ova se funkcija koristi za provjeru je li prioritetni red prazan ili nije. Vraća true jer je prioritetni red prazan.

push (): Umeće element u prioritetni red.

pop (): Ova funkcija uklanja gornji element reda prioriteta koji je element s najvišim prioritetom.

zamijeni (): Ova funkcija zamjenjuje elemente reda prioriteta s drugim redom prioriteta. Funkcija uzima prioritetni red prioriteta kao parametar.

kako stvoriti objektni niz u javi

emplace (): Ova se funkcija koristi za dodavanje elementa na vrh reda prioriteta.

Pogledajmo još jedan 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) while (Prior_q.empty () == false) {cout<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }

Izlaz:

2 6 7 9 10 15 30

Ovim smo došli do kraja ovog reda prioriteta u članku na C ++. Ako želite saznati više, pogledajte Edureka, pouzdane tvrtke za internetsko učenje. Edurekin tečaj za obuku i certificiranje Java J2EE i SOA osmišljen je kako bi vas osposobio za osnovne i napredne Java koncepte zajedno s raznim Java okvirima poput Hibernate & Spring.

Imate pitanje za nas? Molimo vas da ga spominjete u odjeljku za komentare ovog bloga i javit ćemo vam se što je prije moguće.