Zum Inhalt springen

Informatik · Klasse 11–12 · aktualisiert

Stapel (Stack): LIFO, Operationen und Anwendungen

Du erklärst das Stapelprinzip, verfolgst push, pop und peek und lernst Anwendungen sowie den Umgang mit leeren und vollen Stapeln kennen.

0 von 9 Aufgaben gelöst

Stapel (Stack): LIFO, Operationen und Anwendungen

Kurz gesagt

Ein Stack speichert Werte nach LIFO („Last In, First Out“): Der zuletzt abgelegte, noch vorhandene Wert kommt zuerst heraus. push legt einen Wert oben ab. Bei nicht leerem Stack liefert pop den obersten Wert und entfernt ihn; peek liefert ihn ohne Entfernen.

Ein Stack, auf Deutsch Stapel, ist eine Datenstruktur: eine festgelegte Art, Daten zu ordnen und auf sie zuzugreifen. Du legst Werte oben ab und greifst auch von oben auf sie zu. Damit kannst du Abläufe nachvollziehen, bei denen der letzte Schritt zuerst bearbeitet werden muss.

Deine Lernziele

Hake ab, was du schon kannst. Löst du alle Aufgaben eines Abschnitts, hakt Termi das Ziel für dich ab.

4 Abschnitte

Ein Stack arbeitet nach dem LIFO-Prinzip. LIFO steht für „Last In, First Out“, auf Deutsch „zuletzt hinein, zuerst heraus“. Von den noch vorhandenen Werten wird der zuletzt abgelegte zuerst entnommen. Nach seiner Entnahme ist der unmittelbar darunterliegende Wert oben.

Eine Warteschlange arbeitet nach dem FIFO-Prinzip. FIFO steht für „First In, First Out“, also „zuerst hinein, zuerst heraus“. Von den noch vorhandenen Werten wird der zuerst eingefügte zuerst entnommen. Stack und Warteschlange unterscheiden sich damit durch ihre Entnahmereihenfolge. Beide Regeln richten sich nach dem Einfügen, nicht nach der Größe eines Zahlenwerts.

Definition

LIFO-Prinzip

Der zuletzt abgelegte, noch vorhandene Wert wird zuerst entnommen. Einfügen und Entnehmen finden an der Oberseite des Stacks statt.

Beispiel: Drei beschriftete Karten einlegen

  1. 1Die Karten „Nord“, „Ost“ und „West“ werden in dieser Reihenfolge eingefügt.
  2. 2Ein Stack liefert beim vollständigen Entnehmen zuerst „West“, dann „Ost“, dann „Nord“.
  3. 3Eine Warteschlange liefert zuerst „Nord“, dann „Ost“, dann „West“.

Teste dich

LeichtAuf einen leeren Stack werden nacheinander 24, 63 und 8 gelegt. Welcher Wert wird zuerst entnommen?

Alles auf einen Blick

Stapel (Datenstruktur)

  • Reihenfolge

    Ein Stack liefert den zuletzt abgelegten, noch vorhandenen Wert zuerst; eine Warteschlange den zuerst eingefügten.

  • Operationen

    push legt oben ab. Bei nicht leerem Stack liefern pop und peek den obersten Wert; pop entfernt ihn, peek nicht.

  • Anwendungen

    Rücksprungadressen und die Auswertung von Postfix-Ausdrücken können mit einem Stack verwaltet werden.

  • Leerfall

    Im beschriebenen Python-Beispiel liefern pop und peek bei leerem Stack None.

  • Grenzen

    Erweiterbarer Speicher ist begrenzt. Unsere Variante mit fester Platzanzahl weist push bei vollem Stack mit der Meldung „voll“ zurück.

Musteraufgabe · Schritt für Schritt

Den Postfix-Ausdruck „14 6 2 − +“ auswerten

  1. 1Der Stack startet leer. Wir lesen von links nach rechts; rechts in den eckigen Klammern liegt oben.
  2. 2Die Zahlen 14, 6 und 2 werden nacheinander abgelegt. Der Zustand ist [14, 6, 2].
  3. 3Beim Minuszeichen entnehmen wir zuerst 2 als rechten und dann 6 als linken Wert. Wir rechnen 6-2=4 und legen 4 ab. Der Zustand ist [14, 4].
  4. 4Beim Pluszeichen entnehmen wir zuerst 4 und dann 14. Wir rechnen 14+4=18 und legen 18 ab. Der Zustand ist [18].
  5. 5Die Folge ist vollständig gelesen. Der einzelne verbleibende Wert 18 ist das Ergebnis.

Fehler finden

Prüfe das Lesen eines Stack-Werts In einer Zeile steckt ein Fehler. Tippe sie an.

Lückentext

Wähl in jeder Lücke das passende Wort und prüf dann deine Antworten.

Du legst zuerst 16 und dann 29 auf einen leeren Stack. Ohne weitere Operationen liefert pop() anschließend . Ein Stack enthält unten 5 und oben 22. Nach peek() beträgt die Anzahl gespeicherter Werte . Im beschriebenen Python-Zahlenbeispiel ist der Stack leer. pop() liefert dort .

Karteikasten

Erst selbst überlegen, dann umdrehen.

Übung mit Feedback

Abschluss-Check: Stapel (Datenstruktur)

LeichtEin Ausgabefach soll das zuerst eingelegte, noch vorhandene Ticket zuerst liefern. Welche Regel passt dazu?
MittelUnsere Variante mit fester Platzanzahl hat drei Plätze. Der Zustand ist [2, 5, 11]. Welcher Zustand bleibt nach dem Versuch push(20)?
SchwerDu wertest die gültige Postfix-Folge „10 8 3 − −“ mit einem anfangs leeren Stack aus. Welches Ergebnis bleibt?

Weiterlesen in Informatik