C ++ Priority Warteschlangenfunktionen

C ++ Priority Warteschlangenfunktionen
„Die Warteschlange ist eine FIFO -Datenstruktur (First In, First Out), die darauf hinweist. Eine bestimmte Vielfalt von Warteschlangen ist eine vorrangige Warteschlange. Im Gegensatz zur Warteschlange hält sich die Priority -Warteschlange nicht dem FIFO -Prinzip an.

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:

  • Typ: Die Art der Inhalte oder Komponenten, die in der Prioritätswarteschlange gehalten werden.
  • Container: Da die Prioritätswarteschlange ein Containeradapter ist, erfordert seine Ausführung einen tatsächlichen zugrunde liegenden Container. Der Container, der zum Erstellen der Prioritätswarteschlange verwendet wird, wird von dieser Option angegeben. Der Vektor dient standardmäßig als Standardbehälter.
  • Vergleichen Sie: Dieser Parameter ist optional. Die Komponenten in der Prioritätswarteschlange sind in der Priority -Warteschlange gemäß der internen Ordnung eines Objekts angeordnet. Es behält die relativen Positionen der Elemente beim Vergleich bei. Der mögliche Wert des Funktionsobjekts ist der weniger weniger, was das gleiche Ergebnis wie der weniger als Operator erzielt.

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:

  • Leere () Funktion: Diese Methode wird verwendet, um festzustellen, ob der Container, der die Prioritätswarteschlange hält, leer ist oder nicht. Geben Sie wahr zurück, wenn es leer ist; ansonsten falsch. Es erfordert keine Argumente.
  • Size () Methode: Diese Funktion gibt die Elementzahl der Priority Queue zurück. Die Größe wird als Ganzzahl zurückgegeben. Es erfordert keine Argumente.
  • PUSP () Funktion: Das Element wird der Warteschlange hinzugefügt, die diesen Ansatz anwendet. Der Artikel wird zuerst zum Ende der Warteschlange hinzugefügt, und gleichzeitig können sich die Komponenten nach Priorität neu ausrichten. Wie im Argument akzeptiert es Ganzzahlen.
  • POP () Funktion: Diese Technik entfernt die größte Komponente aus der Prioritätswarteschlange. Es erfordert keine Argumente.
  • TOP () Funktion: Die Top -Komponente aus der Prioritätswarteschlange wird von dieser Funktion zurückgegeben. Es erfordert keine Argumente.
  • SWAP () -Funktion: Verwenden dieser Funktion wird eine Prioritätswarteschlange mit ähnlicher Größe und Typ für ihre Komponenten mit einer anderen Prioritätswarteschlange ausgetauscht. Es akzeptiert ein Attribut, dessen Zahlen umgeschaltet werden müssen und die Prioritätswarteschlange.
  • EMPLACE () Funktion: Mit diesem Ansatz wird einem Container oben in der Warteschlange ein Datenelement hinzugefügt. Es akzeptiert einen Attributwert.

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:

  • Wenn die Prioritätswarteschlange kein Element enthält, ist der Wert 1 (True)
  • Wenn die Prioritätswarteschlange Artikel 0 (Falsch) enthält.

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.