stacks queues stl
Erfahren Sie anhand von Beispielen, wie Sie Stapel und Warteschlangen in STL implementieren.
Stapel und Warteschlangen sind zwei Container in STL, die sehr einfach sind. Sie sind die einfachsten Container, die breite Anwendungen in der Softwareprogrammierung haben.
In diesem Tutorial sehen wir eine detaillierte Implementierung dieser beiden Container in STL. Wir werden auch die verschiedenen Operationen, die von Stack und Queue unterstützt werden, anhand von Beispielen durchgehen.
=> Sehen Sie sich hier die einfache C ++ - Schulungsserie an.
Was du lernen wirst:
Stapel
Der Stapelcontainer in STL ist eine Art Containeradapter. Es wird verwendet, um eine Stapeldatenstruktur in C ++ zu replizieren. Der Stapelcontainer ist eine Gruppe von Elementen, in die die Elemente an einem Ende eingefügt und am selben Ende ebenfalls gelöscht werden.
Dieser gemeinsame Punkt zum Hinzufügen und Löschen wird als 'Top of the Stack' bezeichnet.
Die bildliche Darstellung des Stapels ist unten gezeigt.
Wie in der obigen Darstellung gezeigt, ist der Stapel ein Container, in dem Elemente von demselben Ende hinzugefügt und gelöscht werden, das als Oberseite des Stapels bezeichnet wird.
Da das Hinzufügen und Löschen am selben Ende erfolgt, können wir sagen, dass der Stapelcontainer vom Typ LIFO (last in, first out) ist. Dies bedeutet, dass das zuerst hinzugefügte Element das letzte ist, das gelöscht wird.
Um einen Stapelcontainer zu implementieren, müssen wir den Header in unser Programm aufnehmen.
#include
Die allgemeine Deklarationssyntax für Stapelcontainer lautet:
stack stackName;
Stapeloperationen
Lassen Sie uns als Nächstes die verschiedenen Operationen diskutieren, die Stapelcontainer in STL unterstützen.
- drücken : Mit der Push-Operation wird ein Element in den Stapel eingefügt. Diese Operation fügt immer Elemente am oberen Rand des Stapels hinzu.
Betrachten Sie ein Leerstapel-Mystack vom Typ Integer .
Als nächstes fügen wir Element 1 zum Stapel hinzu.
Dann fügen wir dem Stapel Element 3 hinzu.
Entsprechend der Darstellung wird als Ergebnis einer Push-Operation ein Element am oberen Rand des Stapels hinzugefügt. Nach jedem Push-Vorgang wird die Größe des Stapels um 1 erhöht.
- Pop : Die Pop-Operation wird verwendet, um ein Element vom Stapel zu entfernen. Das entfernte Element ist dasjenige, auf das die Oberseite des Stapels zeigt. Durch die Pop-Operation wird die Stapelgröße um 1 reduziert.
Lassen Sie uns sehen, wie die Pop-Operation aussieht:
Betrachten Sie das Stapel-Mystack wie oben, in dem wir bereits 2 Elemente verschoben haben.
Rufen wir nun die Funktion pop () auf. Wenn dieser Aufruf ausgeführt wird, wird das Element oben im Stapel entfernt und das 'Top' zeigt auf das nächste Element, wie unten gezeigt.
Wenn wir erneut pop () aufrufen, wird das nächste Element (in diesem Fall 1) entfernt, wodurch ein leerer Stapel entsteht.
Programm zum Kopieren von DVDs auf den Computer
- oben : Gibt das oberste Element des Stapels zurück.
- leer : Überprüft, ob der Stapel leer ist oder nicht.
- Größe: Gibt die Größe des Stapels zurück, d. H. Die Anzahl der Elemente im Stapel.
Im Folgenden finden Sie ein Beispiel für die Stack-Implementierung, um die Vorgänge besser zu verstehen.
#include #include using namespace std; void printStack(stack stk) { while (!stk.empty()) { cout << ' ' << stk.top(); stk.pop(); } cout << '
'; } int main () { stack oddstk; oddstk.push(1); oddstk.push(3); oddstk.push(5); oddstk.push(7); oddstk.push(9); cout << 'The stack is : '; printStack(oddstk); cout << '
Size of stack: ' << oddstk.size(); cout << '
Top of stack: ' << oddstk.top(); cout << '
oddstk.pop() : '; oddstk.pop(); printStack(oddstk); cout<<'
Another pop(): '; oddstk.pop(); printStack(oddstk); return 0; }
Das obige Beispiel zeigt deutlich die Push-Operation, die einen Stapel erzeugt. Es zeigt auch den Stapel nach zwei aufeinanderfolgenden Pop-Operationen.
So haben wir Stack und seine Operationen in STL gesehen. In diesem Tutorial sehen wir außerdem die detaillierte Implementierung eines weiteren einfachen STL-Containers, nämlich 'Queue'.
Warteschlange
Die Warteschlange ist ein weiterer Container in STL, der ebenfalls sehr einfach und nützlich ist. Der Warteschlangencontainer ist eine Replik der Warteschlangendatenstruktur in C ++. Im Gegensatz zum Stapel gibt es im Warteschlangencontainer zwei Enden, d. H. Vorne und hinten.
Elemente werden der Warteschlange hinten hinzugefügt, während sie von der Vorderseite der Warteschlange gelöscht werden. Im Allgemeinen verwendet die Warteschlange eine FIFO-Anordnung (First In, First Out).
Um einen Warteschlangencontainer in einem Programm zu implementieren, müssen wir einen Header in den Code aufnehmen.
#include
Die allgemeine Syntax für die Deklaration der Warteschlange lautet:
Warteschlange Warteschlangenname;
Wir deklarieren den Warteschlangencontainer wie folgt:
Queue myqueue;
Warteschlangenoperationen
Jetzt sehen wir die verschiedenen Operationen, die von der Warteschlange unterstützt werden.
- drücken: Die Funktion 'Push' fügt das Element am Ende der Warteschlange hinzu, d. H. Am Ende der Warteschlange.
- Pop: Die Funktion 'Pop' entfernt das erste Element der Warteschlange, d. H. Das Element an der Vorderseite der Warteschlange.
Lassen Sie uns die Push- und Pop-Funktionen der Warteschlange verstehen.
Stellen Sie sich eine leere Warteschlange vor, die über myqueue deklariert ist. Jetzt schieben wir mit der Operation eine gerade Zahl 2 in die Warteschlange
myqueue.push (2);
Jetzt sieht die Warteschlange folgendermaßen aus:
Als nächstes fügen wir der Warteschlange mit dem Aufruf 'myqueue.push (4)' '4' hinzu.
Jetzt sieht die Warteschlange wie folgt aus:
Wie oben gezeigt, werden die Elemente vom hinteren Ende oder von hinten in die Warteschlange geschoben.
Lassen Sie uns nun die Operation auf myqueue ausführen.
myqueue.pop ();
Wie wir sehen, wird beim Aufruf von pop () das Element vorne in der Warteschlange entfernt. Dies bedeutet, dass das erste Element, das in die Warteschlange eingegeben wird, das erste Element ist, das sich außerhalb der Warteschlange befindet.
- Vorderseite: Diese Funktion gibt einen Verweis auf das erste Element der Warteschlange zurück.
- zurück: Zurück gibt einen Verweis auf das letzte Element in der Warteschlange zurück.
- leer: Überprüft, ob die Warteschlange leer ist.
- Größe: Gibt die Größe der Warteschlange zurück, d. H. Die Anzahl der Elemente in der Warteschlange.
Im Folgenden finden Sie ein Beispielprogramm, das die vom Warteschlangencontainer verwendeten Vorgänge demonstriert.
#include #include using namespace std; void printQueue(queue myqueue) { queue secqueue = myqueue; while (!secqueue.empty()) { cout << ' ' << secqueue.front(); secqueue.pop(); } cout << '
'; } int main() { queue myqueue; myqueue.push(2); myqueue.push(4); myqueue.push(6); myqueue.push(8); cout << 'The queue myqueue is : '; printQueue(myqueue); cout << '
myqueue.size() : ' << myqueue.size(); cout << '
myqueue.front() : ' << myqueue.front(); cout << '
myqueue.back() : ' << myqueue.back(); cout << '
myqueue.pop() : '; myqueue.pop(); printQueue(myqueue); return 0; }
Ausgabe:
Orakel SQL Interview Fragen für erfahrene
Die Warteschlangen-Myqueue lautet: 2 4 6 8
myqueue.size (): 4
myqueue.front (): 2
myqueue.back (): 8
myqueue.pop (): 4 6 8
Wie oben gezeigt, deklarieren wir zuerst einen Warteschlangencontainer. Dann addieren wir mit der Push-Operation die ersten vier geraden Zahlen. Danach nehmen wir das Element aus der Warteschlange und zeigen die geänderte Warteschlange an.
Fazit
Damit sind wir am Ende dieses Tutorials zu Stapeln und Warteschlangen angelangt. Wie bereits erwähnt, sind dies die einfachsten Container, die wir in STL haben. Eine andere Variante des Warteschlangencontainers wird als 'Prioritätswarteschlange' bezeichnet.
In unserem nächsten Tutorial werden wir mehr über Priority Queue in STL diskutieren !!
=> Besuchen Sie hier, um C ++ von Grund auf neu zu lernen.