Zehn Übungen zum Stapel — von push und pop bis zu Rückgängig und Wiederholen.
Dein Fortschritt:
0 / 0 Aufgaben
1
Übungsaufgaben
Zehn interaktive Übungen zum Klicken, Ziehen und Knobeln — von AFB I bis AFB III. Jede Übung gibt dir sofort Rückmeldung.
A1
Wo steckt LIFO?
AFB I
Welche Beispiele funktionieren nach dem Prinzip „Last In – First Out“?
Mehrere Antworten sind richtig. Markiere alle zutreffenden und klicke dann auf „Prüfen“.
Beim Wartezimmer kommt die kleinste Nummer zuerst dran — das ist FIFO, also eine Schlange. Bei der Sackgasse fährt das zuletzt eingefahrene Auto zuerst hinaus.
A2
Stapel-Memory
AFB I
Finde die sechs Paare aus Begriff und Bedeutung.
Decke zwei Karten auf, die zusammengehören. Mit der Tastatur: Tab zur Karte, Enter aufdecken, Pfeiltasten zum Wandern.
Der Unterschied zwischen pop() und top() ist der häufigste Punktverlust in Klausuren.
A3
Stimmt's? — Fünferserie
AFB I
Fünf Behauptungen zu pop und top.
5 Aussagen nacheinander. Eine falsche Einschätzung reicht — dann startest du die Serie mit „Neue Runde“ neu.
Aussage 1 von 5
Faustregel: pop verändert den Stapel, top und isEmpty nicht.
A4
Rechnen mit dem Stapel
AFB II
Ein leerer Stapel s vom Typ Stack<Integer> erlebt:
s.push(4);
s.push(7);
s.push(1);
int x = s.pop();
s.push(x + 5);
Arbeite die Kette Schritt für Schritt ab: Erst wenn ein Schritt stimmt, wird der nächste freigeschaltet. Enter prüft.
Wert von x
s.top() nach der letzten Zeile
danach: s.pop() + s.pop()
danach: s.top()
x ist die 1, die zuletzt aufgelegt wurde. Danach liegt 6 oben, darunter 7 und 4 — die beiden pop-Aufrufe liefern 6 und 7.
A5
Rückgaben in zeitlicher Folge
AFB II
Auf einem leeren Stapel laufen: push("A"), push("B"), pop(), push("C"), push("D"), pop(), pop(), pop(). Ordne die Rückgabewerte der pop-Aufrufe in der Reihenfolge, in der sie entstehen.
Ziehe die Karten in die richtige Reihenfolge — mit der Tastatur: ↑/↓ verschiebt, Shift+↑/↓ wechselt nur den Fokus.
1„B“ (erstes pop)
2„D“ (zweites pop)
3„C“ (drittes pop)
4„A“ (viertes pop)
Das erste pop kommt, bevor C und D aufgelegt sind — deshalb erscheint B ganz vorn und nicht erst nach D und C.
A6
Verändert oder liefert?
AFB II
Sortiere die Aufrufe: Verändern sie den Stapel, liefern sie nur einen Wert — oder beides?
Ziehe jede Karte in den passenden Korb — oder wähle sie mit Enter aus und drücke dann die Ziffer des Korbs (0 legt sie zurück).
1verändert nur
2liefert nur
3verändert und liefert
s.pop(); liefert auch dann einen Wert, wenn niemand ihn speichert — der Stapel wird trotzdem kürzer. s.push(s.top()) verdoppelt das oberste Element.
A7
Befehlsfolge trifft Ergebnis
AFB II
Jede Befehlsfolge beginnt mit einem leeren Stapel. Verbinde sie mit dem, was der letzte Aufruf liefert.
Klicke links ein Element an und dann rechts das passende — es entsteht eine Verbindungslinie. Mit der Tastatur: Enter zum Auswählen, ↑/↓ zum Wandern.
Der Laufzeitfehler ist Absicht: Nach einem push und einem pop ist der Stapel leer.
A8
Das zweite Element von oben
AFB III
Die Methode soll das zweite Element von oben liefern (oder −1, falls es fehlt) — und den Stapel unverändert lassen. Welche Zeilen sind falsch?
In diesem Text stecken Fehler. Klicke genau die falschen Zeilen an — die richtigen musst du stehen lassen.
Wer etwas vom Stapel nimmt, um darunter zu sehen, muss es vor jedemreturn zurücklegen.
A9
Rückgängig und Wiederholen
AFB III
Ein Zeichenprogramm merkt sich Aktionen in zwei Stapeln: rueck für Rückgängig, vor für Wiederholen. Spiele den Ablauf durch.
Spiele den Ablauf Schritt für Schritt durch: Was passiert als Nächstes? Nur die richtige Karte bringt dich weiter.
Zwei Stapel, die sich Elemente zuwerfen — dieses Muster steckt in fast jedem Programm mit Rückgängig-Funktion.
A10
Wann hört die Schleife auf?
AFB III
Der Stapel s enthält von unten nach oben 2, 4, 6, 8.
int summe = 0;
while (!s.isEmpty() && s.top() > 3) {
summe = summe + s.pop();
}
Welchen Wert hat summe danach?
Rechne selbst und trage das Ergebnis ein — Enter prüft direkt.
Entnommen werden 8, 6 und 4 (alle größer als 3). Oben liegt dann 2 — die Bedingung ist falsch, die Schleife endet: 8 + 6 + 4 = 18.