Priority -Warteschlangen sind eine Form des speziell entwickelten Containeradapters. Dieses Framework ähnelt einem Haufen, in dem Komponenten jederzeit hinzugefügt werden können, und nur die maximale Anzahl von Heap -Komponenten kann abgerufen werden (das erste Element in der Prioritätsliste).
Prioritätswarteschlangen werden als Container -Wechselrichter konstruiert. Sie sind Klassen, die eine geschlossene Instanz einer bestimmten Containerkategorie als tatsächlichen Container verwenden und einen bestimmten Satz von Variablen und Funktionen anbieten, um ihre Komponenten abzurufen. Der höchste Wert der vorrangigen Warteschlange oder der „Rückseite“ des Behälter.”
Was ist eine vorrangige Warteschlange in C++?
Die erste Komponente in einer vorrangigen Warteschlange ist die größte aller Komponenten in der Warteschlange, und die Komponenten sind in absteigender Reihenfolge. Eine Prioritätswarteschlange ist eine Form des Containeradapters in C ++, die nur die höchste Prioritätskomponente behandelt.
Vergleichen Sie eine Warteschlange mit einer vorrangigen Warteschlange
Es gibt keine Priorität in einer Warteschlange; Im Gegensatz dazu betrachtet ein Warteschlangenbehälter das Element als oberste Priorität. Die First-in-First-Out-Regel (FIFO) gilt für die Warteschlange; In der Prioritätswarteschlange würde jedoch zuerst die Komponente mit höchster Priorität entfernt. Wenn mehrere Elemente eine ähnliche Priorität haben, wird in dieser Situation die Reihenfolge der Warteschlange verwendet.
Syntax der vorrangigen Warteschlange
Die vorrangige Warteschlange in C ++ hat die folgende Syntax:
Die Parameter werden wie folgt beschrieben:
Die vorrangige Warteschlange ist standardmäßig mit einem Max-heap in c konstruiert++.
Syntax der vorrangigen Warteschlange von Min-H-Kap-Priorität
Die Schaffung der min-heap-Syntax der Priority Queue lautet wie folgt:
Hier ist Greater eine Vergleichskurs, und Vector ist ein Standard -Vorlagenbibliotheksbehälter.
Vorteile der Verwendung der vorrangigen Warteschlange
Die Eckpunkte werden zugewiesen, wodurch sie die Warteschlange besteigen können, anstatt auf den Rücken zu fallen, da sie sich in einer Standardwarteschlange befinden.
Nachteile der Verwendung der vorrangigen Warteschlange
Da wir auch eine Additionsoperation verwenden müssen, um die Elemente gemäß ihrer Priorität hinzuzufügen. Die Implementierung mithilfe einer verknüpften Liste ermöglicht es, eine konsistente Einführungszeit beizubehalten.
Methoden der vorrangigen Warteschlange
Die C ++ - Priority -Warteschlangenfunktionen sind wie folgt:
Lassen Sie uns die oben genannten Funktionen in verschiedenen Codes ausführen.
Beispiel Nr. 1
In diesem Beispiel fügen wir einer Prioritätswarteschlange einen Artikel hinzu. Um der Prioritätswarteschlange ein Element hinzuzufügen, werden wir die Funktion PUSP () verwenden.
Die erforderlichen Header -Dateien und werden zu Beginn des Programms aufgenommen. Dann wird der Standard -Namespace als STD hinzugefügt. Jetzt würde die main () -Funktion aufgerufen werden. Die Warteschlange der Ganzzahlwerte wird als nächstes erstellt. Diese Warteschlange ist eine vorrangige Warteschlange. Zu dieser vorrangigen Warteschlange werden verschiedene Werte hinzugefügt. Die Zahlen werden durch die Verwendung der PUSP () -Funktion eingefügt. Drei zufällige Werte werden mithilfe der Push -Methode hinzugefügt. Die Aussage „Cout“ wird verwendet.
Nachdem Sie diese Zeile angezeigt haben, um die Werte der Warteschlange „während“ zu drucken, wird es verwendet. In der Schleife "while" wird die Funktion leere () angewendet, um zu überprüfen, ob die Warteschlange leer ist oder nicht. Die POP () -Methode wird verwendet, um die Werte der Warteschlange in absteigender Reihenfolge zu drucken. Dann wird die pop () -Methode auch auf die Werte der Warteschlange angewendet. Die "Return 0" muss am Ende aufgenommen werden.
Wir haben eine vorrangige Warteschlange mit Zahlen namens Num errichtet. Die Funktion Push () wurde verwendet, um die verschiedenen Einträge zur Warteschlange hinzuzufügen: 12, 30 und 72.
Beispiel Nr. 2
Im Gegensatz zu Vektoren und anderen Strukturen können wir nicht durch eine vorrangige Warteschlange durchlaufen. Aus diesem Grund haben wir die Mitglieder der Priority -Warteschlange mit einer Weile -Schleife und unterschiedlichen Prioritätswarteschlangenmethoden gedruckt.
Dies ist so, dass die vorrangige Warteschlange wie eine typische Prioritätswarteschlange -Datenstruktur funktioniert, weshalb es sich. Infolgedessen drucken wir sein Oberteil, bevor wir den Gegenstand regelmäßig in eine Schleife knallen, bis die Warteschlange leer ist.
Beispiel Nr. 3
Wir haben beschlossen, den Artikel aus der Prioritätswarteschlange in diesem Fall zu entfernen. Mit der Funktion pop () kann eine Komponente aus der Prioritätswarteschlange gelöscht werden. Der Höchstwert wird in diesem Ansatz beseitigt.
Wir werden den Code starten, indem wir die Bibliotheken und den Standardnamenspace integrieren. Die Bibliotheken enthalten und . Die Methode zur Anzeige der Prioritätswarteschlange wird dann mit der Verwendung von display_priority_queue () aufgerufen. Die Warteschlange enthält die Ganzzahlzahlen, so dass „int“ als Argument der Funktion geliefert wird. Nach all dem wird die Main () -Methode aufgerufen. Die Warteschlange wird erstellt. Die Funktion Push () wird verwendet, um verschiedene Werte in der definierten Prioritätswarteschlange hinzuzufügen. Die Anweisung „Cout“ wird verwendet, um die ursprünglichen Elemente der Prioritätswarteschlange anzuzeigen.
Dann wird die pop () -Methode angewendet. Diese Funktion beseitigt den angegebenen Wert aus der Prioritätswarteschlange. Jetzt wird die Anweisung "Cout" verwendet, um die Werte der Warteschlange anzuzeigen, nachdem Sie ein Element aus der Warteschlange gelöscht haben. Der Befehl "return 0" -würde hinzugefügt werden. Als nächstes wird die Versorgungsmethode verwendet, um die definierte Prioritätswarteschlange anzuzeigen. Die "während" -Schloop wird beschäftigt. Innerhalb der Methoden "while" -Loop leer () und Top () werden verwendet. Die Schleifenbedingung wird auf die Funktion leer () angewendet. Die POP () -Methode würde verwendet, um den höchsten Wert aus der Prioritätswarteschlange zu löschen.
Hier haben wir eine ganzzahlige Prioritätswarteschlange erstellt, die als num bezeichnet wird. Die anfänglichen Komponenten der Priority Queue sind „61, 23, 45.Das höchste Attribut wurde dann mit der Pop () -Technik gelöscht. Das Ergebnis wird also „45, 23 sein.”
Beispiel Nr. 4
In diesem Fall wird die Funktion von Top () verwendet, um den Maximalwert der Prioritätswarteschlange abzurufen.
Die Bibliotheken und der Standard -Namespace werden integriert, bevor wir mit dem Schreiben des Code beginnen. und sind beide in den Bibliotheken erhältlich. Wir werden dann die Funktion main () aufrufen. Die Priority -Warte -Erstellungsmethode würde dann aufgerufen. Die Funktion wird das Argument "int" erhalten, da die Warteschlange nur ganzzahlige Zahlen enthält. Der angegebenen Prioritätswarteschlange werden unter Verwendung der Funktion PUSP () unterschiedliche Werte hinzugefügt.
Pop () wird verwendet, nachdem die Elemente zur Prioritätswarteschlange hinzugefügt wurden. Diese Funktion zeigte den Maximalwert der bereitgestellten Prioritätswarteschlange. Der Text „Top -Element der Prioritätswarteschlange“ wird unter Verwendung der Cout -Anweisung angezeigt. Die Anweisung „Rückgabe 0“ könnte angewendet werden, um das Programm zu beenden.
Beispiel Nr. 5
In dieser Abbildung prüfen wir, ob die Prioritätswarteschlange leer ist oder nicht, indem Sie die Funktion leer () verwenden. Diese Methodik erzeugt:
Zu Beginn des Programms würden die erforderlichen Header -Dateien und die erforderlichen Header -Dateien enthalten. Dann wird STD dem Standard -Namespace hinzugefügt. Jetzt würde die main () -Methode aufgerufen. Es würde eine erstellte Warteschlange geben, indem die Funktion verwendet wird. Diese Methode nimmt den Parameter „String“ an, da sie Werte mit dem Datentyp "String" in dieser Warteschlange enthält. Dies wird Priorität haben. „Ist die Warteschlange einen beliebigen Wert enthält?”Würde mit dem Befehl" Cout "gedruckt werden.
Die Bedingung „If-else“ würde verwendet, um die Antwort zu bestimmen. Die Funktion leer () wird in der Anweisung „if“ angewendet, um zu überprüfen, ob die Warteschlange Werte hat oder nicht. Wenn die Warteschlange einen Wert enthält, druckt die Anweisung "Cout" "Ja", andere "Cout" -Antur. Infolgedessen wird die Zeile mit dem Titel "Drücken der Werte der Prioritätswarteschlange" durch die Anweisung "Cout" angezeigt. Die vorrangige Warteschlange wird aktualisiert, um die Namen verschiedener Länder aufzunehmen. Die PUSP () -Methode würde verwendet, um die Namen einzulegen. Die Push -Technik wird die Namen von drei Ländern hinzufügen. „Ist die Warteschlange einen beliebigen Wert enthält?”Wird mit dem Befehl" Cout "auf der Konsole gedruckt.
Die Bedingung „IF-ELSE“ wird nach der Anzeige dieser Zeile angewendet. Die leere () -Methode wird erneut verwendet, um zu bestätigen, ob die Warteschlange leer ist oder nicht. Die letzte "Rückgabe 0" muss anwesend sein.
Um zu prüfen, ob die Prioritätswarteschlange in der Landschaft gefüllt ist oder nicht, haben wir die leere () -Funktion verwendet. Die Warteschlange ist am Anfang leer. Land.leer () kehrt daher wahr zurück. Danach fügten wir der Warteschlange Elemente hinzu und nutzten noch einmal die leere () -Funktion. Diesmal liefert es falsche Ergebnisse.
Abschluss
Zunächst haben wir untersucht, was eine vorrangige Warteschlange in C ++ in diesem Artikel ist. Dann vergleichen wir die einfache Warteschlange mit der vorrangigen Warteschlange. Darüber hinaus haben wir uns die Syntax der Priority Queue sowie ihre Vorteile und Nachteile angesehen. Darüber hinaus haben wir die verschiedenen C ++ - Methoden für vorrangige Warteschlangen diskutiert. Ein Container, der als Prioritätswarteschlange bezeichnet wird, wird verwendet, um Komponenten mit Prioritäten zu halten. Im Gegensatz zu Warteschlangen, die Komponenten gemäß der FIFO -Regel hinzufügen oder entfernen. Die anfängliche Komponente, die aus der Warteschlange entfernt wurde. Der Zweck der Priority Queue besteht darin, die Komponenten gemäß Priorität zu verwalten.
In diesem Artikel wurden fünf verschiedene Fälle implementiert. In erster Linie haben wir die Funktion Push () verwendet, um die Elemente in die Prioritätswarteschlange einzulegen. Das zweite Beispiel verwendet eine "while" -Schloop, um die Werte der Prioritätswarteschlange anzuzeigen. Im dritten Szenario haben wir die POP () -Methode verwendet, um den Maximalwert aus der Prioritätswarteschlange zu löschen. Mit Hilfe der oberen () -Funktion konnten wir in der vierten Abbildung den höchsten Wert abrufen. In der letzten verwendeten wir die leere () -Methode, um festzustellen, ob die vorrangige Warteschlange leer war oder nicht.