Com implementar una cua de prioritat a C ++



Aquest article us proporcionarà un coneixement detallat i complet sobre com implementar una cua de prioritat a C ++ amb exemples.

Una cua prioritària és un contenidor a la STL. És similar a la cua, excepte pel fet que cada element de la cua de prioritat té certa prioritat i quan fem servir elements de la cua de prioritat, els elements amb la màxima prioritat apareixen primer. Igual que la cua de prioritat, hi ha 10 tipus de contenidors diferents STL . Un contenidor és un objecte que emmagatzema dades. Els contenidors STL s’implementen amb l’ajut de classes de plantilles, de manera que és fàcil personalitzar-los per contenir diferents tipus de dades. En aquest post, analitzarem detalladament la cua de prioritat i els conceptes que hi estan relacionats. Els següents indicadors es tractaran en aquesta cua de prioritats a l'article C ++,

Continuem amb aquest article sobre Priority Queue a C ++





Components de STL

STL consisteix en classes i funcions de plantilles que es poden utilitzar com a enfocament estàndard per emmagatzemar i processar dades. Parlem dels components de la STL

Contenidors Hi ha 10 tipus de contenidors definits a STL que s’agrupen en 3 categories. D’aquestes 3, les cues de prioritat pertanyen a la categoria del contenidor derivat. Cada classe de contenidors té el seu propi conjunt de funcions que es poden utilitzar per manipular les dades.



Algorisme - Un algorisme és un mètode utilitzat per processar les dades presents a l'objecte contenidor. STL proporciona molts tipus diferents d’algorismes que es poden utilitzar per inicialitzar, buscar, ordenar, combinar i copiar. Els algoritmes s’implementen amb l’ajut de funcions de plantilla.

Iterador- Un iterador és un objecte que apunta cap a un element del contenidor. Els iteradors us poden ajudar a moure’s pel contingut d’un contenidor. Els iteradors són com indicadors que es poden incrementar i disminuir. Actua com a enllaç entre l'algorisme i el contenidor. Els iteradors s’utilitzen per manipular les dades emmagatzemades en un contenidor.

Continuem amb aquest article sobre Priority Queue a C ++



com es crea un paquet a Java

Munts i cua de prioritat

Com hem vist anteriorment, Priority Queue pertany a la categoria de contenidors derivats. Altres membres d'aquesta categoria són la pila i la cua. Aquests contenidors derivats també es coneixen com a adaptadors de contenidors.

La pila, la cua i la cua de prioritat es coneixen com a contenidors derivats ja que es fabriquen a partir de diferents contenidors de seqüència. Aquests contenidors no admeten cap tipus d'iteradors que no s'utilitzen per a la manipulació de dades.

Què és exactament una cua prioritària?

En paraules simples, és un contenidor que hem utilitzat per emmagatzemar dades. A cada element de les dades emmagatzemades se’ls assigna alguna prioritat que ens pot ajudar a emmagatzemar les dades en un ordre lògic.
Sintaxi:prioritat_cua nom_variable

És important incloure un fitxer de capçalera al programa per utilitzar una cua de prioritat.

cua de prioritat a c ++Per exemple, si afegim 2, 10, 30, 5, 6 a la nostra cua de prioritat mitjançant la funció push i després fem pop els elements mitjançant la funció pop, la sortida serà 30, 10, 6, 5, 2.

D’acord, així que ara sabem el propòsit o l’ús de la cua de prioritat. Però, com va saber si 30> 10? Està fent algun tipus de classificació? En aquest punt apareixen Heaps. Per obtenir informació detallada sobre els munts, consulteu aquest article.

espereu i notifiqueu a Java

Els munts: els munts són estructures semblants als arbres. En funció de com es disposen els nodes dels elements fills en un munt respecte als nodes pares, els munts es subdivideixen en 2 parts

1. Pila mínima- A Min Heap, el valor del node pare és inferior o igual al valor dels nodes fills.

2. Heap màxim: A Max Heap, el valor del node pare és superior o igual al valor dels nodes fills.

Nota- La cua de prioritat no ordena els elements mitjançant algun algorisme d’ordenació, sinó que emmagatzema les dades en forma de pila.

Continuem amb aquest article sobre Priority Queue a C ++

Impressió de tots els elements d'una cua de prioritat

Després d’entendre els fonaments de la cua de prioritat, implementem programes per entendre els mètodes més utilitzats amb una cua de prioritat

#include #include using namespace std 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) mentre que (Prior_q.empty () == false) {cout<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }

Sortida:

30 15 10 9 6 2

Al programa anterior, hem utilitzat les funcions pop (), top () i push () que s’utilitzen la majoria de les vegades mentre es tracta d’una cua de prioritat. Vegem alguns dels mètodes que podem utilitzar amb una cua de prioritat

mida (): Aquesta funció Retorna la mida de la cua de prioritat

buit( ): Aquesta funció s'utilitza per comprovar si la cua de prioritat està buida o no. Es torna cert si la cua de prioritat està buida.

push (): Insereix un element a la cua de prioritat.

pop (): Aquesta funció elimina l'element superior de la cua de prioritat que és l'element amb la màxima prioritat.

swap (): Aquesta funció intercanvia els elements de la cua de prioritat amb una altra cua de prioritat. La funció pren com a paràmetre una cua de prioritat.

emplace (): Aquesta funció s'utilitza per afegir un element a la part superior de la cua de prioritat.

Vegem un programa més.

#include #include using namespace std 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) mentre que (Prior_q.empty () == false) {cout<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }

Sortida:

__init__

2 6 7 9 10 15 30

Amb això, arribem al final d’aquesta cua de prioritats a l’article C ++. Si voleu obtenir més informació, consulteu el per Edureka, una empresa d’aprenentatge en línia de confiança. El curs de formació i certificació Java J2EE i SOA d’Edureka està dissenyat per formar-vos tant per a conceptes bàsics com avançats de Java, juntament amb diversos marcs Java com Hibernate & Spring

Tens alguna pregunta? Si us plau, mencioneu-lo a la secció de comentaris d’aquest bloc i us respondrem el més aviat possible.