Stack
In der Informatik ist ein Stack eine Datenstruktur, die zum Speichern einer Sammlung von Objekten verwendet wird. Einzelne Elemente können mithilfe einer push-Operation zu einem Stack hinzugefügt und darin gespeichert werden. Objekte können mithilfe einer pop-Operation abgerufen werden, wobei ein Element aus dem Stack entfernt wird.
Wenn ein Objekt zu einem Stack hinzugefügt wird, wird es oben auf allen zuvor eingegebenen Elementen platziert. Wenn ein Element entfernt wird, kann es entweder oben oder unten aus dem Stack entfernt werden. Ein Stack, bei dem Elemente von oben entfernt werden, wird als „LIFO“-Stack (Last In, First Out) bezeichnet. Sie können sich einen LIFO-Stack wie einen Kartenstapel vorstellen, auf den Sie einzelne Karten legen und dann Karten von oben abheben. In einem „FIFO“-Stack (First In, First Out) werden Elemente von unten entfernt. Sie können sich einen FIFO-Stack wie eine Reihe in einem Verkaufsautomaten vorstellen, in der die Elemente in der Reihenfolge ausgegeben werden, in der sie in den Automaten gelegt wurden.
Stacks haben mehrere Anwendungsbereiche in der Computerprogrammierung. LIFO-Stacks können beispielsweise verwendet werden, um kürzlich verwendete Objekte aus einem Cache abzurufen. FIFO-Stacks können dazu dienen, sicherzustellen, dass Daten in der Reihenfolge abgerufen werden, in der sie eingegeben wurden. Dies kann zur Verarbeitung von Daten in einer Warteschlange verwendet werden.
Obwohl Stacks häufig von Softwareprogrammierern verwendet werden, bemerken Sie sie bei der Nutzung eines Programms normalerweise nicht. Der Grund dafür ist, dass das Erstellen von Stacks sowie Push- und Pop-Operationen im Hintergrund ausgeführt werden, während eine Anwendung läuft, und für den Benutzer nicht sichtbar sind. Wenn einem Stack jedoch der Speicher ausgeht, führt dies zu einem „Stack Overflow“. Wird dieser nicht korrekt vom Programm behandelt, kann ein Stack Overflow eine Fehlermeldung erzeugen oder dazu führen, dass das Programm abstürzt.
NOTE: Der Begriff „Stack“ kann sich auch auf einen Protokoll-Stack beziehen, der aus mehreren Netzwerkprotokollen besteht, die zusammenarbeiten. Jedes Protokoll wird einer von sieben verschiedenen Schichten zugeordnet, die im OSI-Modell definiert sind.
Testen Sie Ihr Wissen