Definition von Stack in der Programmierung

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 in einer Cafeteria werden Elemente in einem Stapel in der Reihenfolge „last in first, first out“ oder LIFO hinzugefügt oder von der Oberseite des Stapels entfernt.

Der Vorgang des Hinzufügens von Daten zu einem Stapel wird als "Push" bezeichnet, während das Abrufen von Daten von einem Stapel als "Pop" bezeichnet wird. Dies geschieht am oberen Rand des Stapels. Ein Stapelzeiger zeigt die Ausdehnung des Stapels an und passt sich an, wenn Elemente auf einen Stapel verschoben oder dort abgelegt werden.

Wenn eine Funktion aufgerufen wird, wird die Adresse des nächsten Befehls auf den Stapel geschrieben.

Wenn die Funktion beendet wird, wird die Adresse aus dem Stapel entfernt und die Ausführung an dieser Adresse fortgesetzt.

Aktionen auf dem Stapel

Es gibt andere Aktionen, die je nach Programmierumgebung auf einem Stapel ausgeführt werden können.

  • Peek: Ermöglicht die Überprüfung des obersten Elements auf einem Stapel, ohne das Element tatsächlich zu entfernen.
  • Swap: Wird auch als "Tauschen" bezeichnet. Dabei werden die Positionen der beiden obersten Elemente des Stapels vertauscht, wobei das erste Element zum zweiten und das zweite zum obersten Element wird.
  • Duplizieren: Das oberste Element wird aus dem Stapel entfernt und dann zweimal auf den Stapel zurückgeschoben, wodurch ein Duplikat des ursprünglichen Elements erstellt wird.
  • Drehen: Wird auch als „Rollen“ bezeichnet und gibt die Anzahl der Elemente in einem Stapel an, die in ihrer Reihenfolge gedreht werden. Wenn Sie beispielsweise die oberen vier Elemente eines Stapels drehen, wird das oberste Element in die vierte Position verschoben, während die nächsten drei Elemente um eine Position nach oben verschoben werden.

Der Stapel ist auch bekannt als "Last In First Out (LIFO) ".

Beispiele: In C und C ++ werden lokal (oder automatisch) deklarierte Variablen auf dem Stapel gespeichert.