Hur man implementerar en prioritetskö i C ++



Den här artikeln ger dig en detaljerad och omfattande kunskap om hur du implementerar en prioritetskö i C ++ med exempel.

En prioritetskö är en container i STL. Det liknar kö förutom det faktum att varje element i prioritetskön har viss prioritet och när vi poppar element från prioritetskön poppar elementen med högsta prioritet först. Liksom prioritetskön finns det 10 olika typer av containrar i STL . En container är ett objekt som lagrar data. STL-behållarna implementeras med hjälp av mallklasser och det är därför enkelt att anpassa den för att hålla olika typer av data. I det här inlägget kommer vi att diskutera prioritetskön och begrepp relaterade till den i detalj. Följande tips kommer att täckas i denna Priority Queue i C ++ artikel,

Fortsätter med den här artikeln om Priority Queue i C ++





skillnad mellan kast och kast

Komponenter i STL

STL består av mallklasser och funktioner som kan användas som standardmetod för lagring och bearbetning av data. Låt oss diskutera komponenterna i STL

Behållare- Det finns 10 typer av behållare definierade i STL och dessa är grupperade i tre kategorier. Av dessa 3 tillhör prioritetsköer kategorin för den härledda behållaren. Varje behållarklass har sin egen uppsättning funktioner som kan användas för att manipulera data.



Algoritm - En algoritm är en metod som används för att bearbeta data som finns i containerobjektet. STL tillhandahåller många olika typer av algoritmer som kan användas vid initialisering, sökning, sortering, sammanslagning, kopiering. Algoritmer implementeras med hjälp av mallfunktioner.

Iterator- En iterator är ett objekt som pekar mot ett element i behållaren. Iteratorer kan hjälpa till med att flytta genom innehållet i en container. Iteratorer är som pekare som kan ökas och minskas. Det fungerar som en länk mellan algoritmen och behållaren. Iteratorer används för att manipulera data som lagras i en container.

Fortsätter med den här artikeln om Priority Queue i C ++



Heaps and Priority Queue

Som vi såg tidigare hör Priority Queue till kategorin härledda containrar. Andra medlemmar i denna kategori är stack och kö. Dessa härledda behållare är också kända som behållaradaptrar.

Stack, kö och prioritetskö kallas härledda behållare eftersom de är gjorda av olika sekvensbehållare. Dessa behållare stöder inte någon typ av iteratorer, de används inte för datamanipulation.

Vad är en prioritetskö exakt?

Med enkla ord är det en behållare som vi använde för att lagra data. Varje element i den lagrade datan tilldelas viss prioritet som kan hjälpa oss att lagra data i en logisk ordning.
Syntax:prioritetsvärd variabelnamn

Det är viktigt att inkludera en rubrikfil i programmet för att kunna använda en prioritetskö.

prioritetskö i c ++Om vi ​​till exempel lägger till 2, 10, 30, 5, 6 i vår prioritetskö med tryckfunktionen och sedan popar elementen med hjälp av popfunktionen blir utgången 30, 10, 6, 5, 2.

Okej, så nu vet vi syftet eller användningen av prioritetskön. Men hur visste det om 30> 10? Gör det någon form av sortering? Vid denna tidpunkt kommer Heaps in i bilden. För att lära dig mer om högar i detalj, se den här artikeln.

Heaps- Heaps är trädliknande strukturer. Baserat på hur barnelementens noder är ordnade i en hög med avseende på föräldernoderna delas högar upp i två delar

java skillnad mellan förlängningar och redskap

ett. Min hög- I Min Heap är värdet på den överordnade noden mindre än eller lika med värdet på undernoderna.

2. Max Heap- I Max Heap är värdet på föräldernoden större än eller lika med värdet på undernoderna.

Notera- Prioritetskön sorterar inte elementen med någon sorteringsalgoritm istället lagrade den data i form av en hög.

Fortsätter med den här artikeln om Priority Queue i C ++

Skriva ut alla element i en prioritetskö

Efter att ha förstått grunderna för prioritetskön, låt oss implementera program för att förstå de vanligaste metoderna med en prioritetskö

#include #include med hjälp av namespace std int main () {prioritet_köpa 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) medan (Prior_q.empty () == false) {cout<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }

Produktion:

30 15 10 9 6 2

I programmet ovan använde vi funktionerna pop (), top () och push () som används oftast när vi har att göra med en prioritetskö. Låt oss ta en titt på några av de metoder som vi kan använda med en prioritetskö

typer av uppsättningar i Java

storlek (): Denna funktion Returnerar storleken på Priority Queue

tom (): Denna funktion används för att kontrollera om prioritetskön är tom eller inte. Det returnerar sant för att prioritetskön är tom.

tryck( ): Infogar ett element i prioritetskön.

pop (): Denna funktion tar bort det övre elementet i prioritetskön som är det element som har högsta prioritet.

byta( ): Denna funktion byter ut elementen i prioritetskön med en annan prioritetskö. Funktionen tar en prioritetskö som parameter.

emplace (): Denna funktion används för att lägga till ett element högst upp i prioritetskön.

Låt oss titta på ytterligare ett program.

#include #include med hjälp av namnrymd std int main () {prioritet_värdet 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) medan (Prior_q.empty () == false) {cout<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }

Produktion:

2 6 7 9 10 15 30

Med detta kommer vi till ett slut på denna Prioritetskö i C ++ - artikeln. Om du vill veta mer, kolla in av Edureka, ett pålitligt inlärningsföretag online. Edurekas Java J2EE- och SOA-utbildning och certifieringskurs är utformad för att träna dig för både grundläggande och avancerade Java-koncept tillsammans med olika Java-ramverk som Hibernate & Spring.

Har du en fråga till oss? Vänligen nämna det i kommentarsektionen på den här bloggen så kommer vi tillbaka till dig så snart som möjligt.