Was bedeutet Stapel?
Ein Stapel, weitaus häufiger auf Englisch “Stack” genannt, ist ein logisches Konzept, das aus einer Reihe von ähnlichen Elementen besteht. Der Begriff wird häufig bei der Programmierung und der Speicherorganisation in Computern verwendet.
Die Programmierung von Stapeln basiert auf dem Prinzip des “last in first out” (LIFO), einer häufig verwendeten Art der Datenabstraktion, die aus zwei Hauptoperationen besteht: “push” und “pop”. Die Push-Operation fügt ein Element am unteren Ende des Stapels hinzu, während die Pop-Operation ein Element von der obersten Position entfernt. Ein gutes Beispiel dafür sind die Stacks, die von kostenlosen Antivirus Softwares genutzt werden, um Scan-Aufträge effizient zu verwalten.
Softwareimplementierungen des Stack-Konzepts erfolgen mit Hilfe von Arrays und verknüpften Listen, wobei die oberste Position mit Hilfe einer Variablen bzw. eines Kopfzeigers verfolgt wird. Viele Programmiersprachen bieten integrierte Funktionen zur Unterstützung der Stack-Implementierung.
In der Informations- und Kommunikationstechnologie (IKT) gibt es folgende bekannte Arten von Stapeln:
- Software-Stacks – Programmierkomponenten, die zusammenarbeiten, um die Ausführung einer Anwendung zu unterstützen. LAMP (Linux, Apache, MYSQL, Perl oder PHP oder Python) ist ein beliebter Software-Stack.
- Vollständige Stacks – alle Front-End- und Back-End-Technologien und Fähigkeiten, die ein IT-Ziel unterstützen.
- Protokollstapel – Regeln für die Interkonnektivität in einem mehrschichtigen Netzwerkmodell wie TCP/IP oder Open Systems Interconnection (OSI). Um zu einem Stack zu werden, müssen die Protokolle vertikal zwischen den Schichten des Netzes und horizontal zwischen den Endpunkten der einzelnen Übertragungssegmente interoperabel sein.
Techopedia erklärt Stack
In der Programmierung ist ein Stapel ein Puffer, der zur vorübergehenden Speicherung von Anfragen verwendet wird. Diese Art von Stack hat eine begrenzte Unterseite und alle Operationen werden an der obersten Position ausgeführt. Jedes Mal, wenn ein Element durch die Push-Operation zum Stapel hinzugefügt wird, wird der obere Wert um eins erhöht, und wenn ein Element aus dem Stapel herausgenommen wird, wird der obere Wert um eins erniedrigt. Ein Zeiger auf die oberste Position des Stapels wird auch als Stapelzeiger bezeichnet.
Pufferstapel können eine feste Größe haben oder dynamisch sein. Stapelregister werden verwendet, um den Wert des Stapelzeigers zu speichern.
Bei Stapeln mit begrenzter Kapazität führt der Versuch, ein Element zu einem bereits vollen Stapel hinzuzufügen, zu einer Stapelüberlauf-Ausnahme. In ähnlicher Weise wird ein Zustand, bei dem eine Pop-Operation versucht, ein Element von einem bereits leeren Stapel zu entfernen, als Unterlauf bezeichnet.
Ein Stack gilt als eingeschränkte Datenstruktur, da nur eine begrenzte Anzahl von Operationen zulässig ist. Neben den Push- und Pop-Operationen können bestimmte Implementierungen auch erweiterte Operationen zulassen, wie z. B.:
- Peek – Zeigt das oberste Element im Stapel an.
- Duplizieren – Kopiert den Wert des obersten Elements in eine Variable und schiebt ihn zurück in den Stapel.
- Tauschen – Tauscht die beiden obersten Elemente im Stapel aus.
- Drehen – Verschiebt die obersten Elemente im Stapel wie durch eine Zahl angegeben oder in einer rotierenden Weise.