Definition von Stack in der Programmierung
vgajic/Getty Images
Ein Stack ist eine Array- oder Listenstruktur von Funktionsaufrufen und Parametern, die in der modernen Computerprogrammierung und CPU-Architektur verwendet werden. Ähnlich wie bei einem Tellerstapel in einem Buffetrestaurant oder einer Cafeteria werden Elemente in einem Stapel oben auf dem Stapel hinzugefügt oder entfernt, in einer Last-in-First-First-out- oder LIFO-Reihenfolge.
Das Hinzufügen von Daten zu einem Stack wird als Push bezeichnet, während das Abrufen von Daten aus einem Stack als Pop bezeichnet wird. Dies geschieht an der Spitze des Stapels. Ein Stapelzeiger zeigt die Größe des Stapels an und passt sich an, wenn Elemente auf einen Stapel geschoben oder dort abgelegt werden.
Wenn eine Funktion aufgerufen wird, wird die Adresse der nächsten Anweisung auf den Stapel geschoben.
Wenn die Funktion beendet wird, wird die Adresse aus der entfernt Stapel und die Ausführung wird an dieser Adresse fortgesetzt.
Aktionen auf dem Stack
Es gibt andere Aktionen, die je nach Programmierumgebung auf einem Stack ausgeführt werden können.
- Peek: Ermöglicht die Inspektion des obersten Elements auf einem Stapel, ohne das Element tatsächlich zu entfernen.
- Swap: Auch als Austausch bezeichnet, die Positionen der beiden obersten Elemente des Stapels werden vertauscht, wobei das erste Element zum zweiten und das zweite zum obersten wird.
- Duplizieren: Das oberste Element wird aus dem Stapel entfernt und dann zweimal zurück auf den Stapel geschoben, wodurch ein Duplikat des ursprünglichen Elements erstellt wird.
- Drehen: Auch als Rollen bezeichnet, gibt die Anzahl der Elemente in einem Stapel an, die in ihrer Reihenfolge gedreht werden. Beispielsweise würde das Drehen der obersten vier Elemente eines Stapels das oberste Element in die vierte Position verschieben, während die nächsten drei Elemente eine Position nach oben verschoben werden.
Der Stack wird auch als bezeichnet ' Last-In-First-Out (LIFO)“.
Beispiele: In C und C++ , Variablen lokal (oder auto) deklariert werden auf dem Stack gespeichert.