MINT üben

Das Prinzip Stapel

Dreißig Übungen zum Stapel: push, pop, top und isEmpty anwenden, Befehlsfolgen verfolgen und Fehler finden.

Dein Fortschritt:
0 / 0 Aufgaben
1

Übungsaufgaben

Dreißig Übungen in gemischter Reihenfolge — du klickst, ziehst, ordnest, rechnest und knobelst. Jede Übung gibt dir sofort eine Rückmeldung, und zu jeder Aufgabe gibt es zwei gestufte Tipps: Der erste zeigt die Richtung, der zweite den entscheidenden Schritt. Die Chips zeigen das Anforderungsniveau: AFB I heißt wiedergeben und direkt anwenden, AFB II selbst entscheiden und verknüpfen, AFB III begründen, beurteilen oder eine Falle durchschauen. Aufgaben mit dem Chip Mix verbinden Wissen aus früheren Unterkapiteln, bei Trick steckt eine Falle drin. Fährst du über ein unterstrichenes Arbeitswort, siehst du, was es genau von dir verlangt.

A1
Wie gut passt ein Stapel?
AFB I

Ein Stapel arbeitet nach dem LIFO-Prinzip. Gib für jede Situation an, wie gut ein Stapel sie beschreibt (1 = passt gar nicht, 5 = passt genau). Eine Stufe Abweichung ist erlaubt.

Wähle für jede Zeile die Stufe von 1 bis 5. Mit der Tastatur: Tab zur Zeile, ←/→ zwischen den Stufen, Enter setzt.
1 = passt gar nicht5 = passt genau
Eine Kiste wird nur von oben gefüllt und nur von oben geleert.
Ein Drucker arbeitet die Aufträge in der Reihenfolge ihres Eintreffens ab.
Bei verschachtelten Klammern wird die zuletzt geöffnete Klammer als erste wieder geschlossen.
Bei einer Playlist wird jeder Titel über seine Nummer direkt angesprungen.
Zeitungen werden täglich oben auf einen Haufen gelegt; gelesen wird zuerst die neueste.
Ein Stapel passt, wenn nur das oberste Element erreichbar ist und das zuletzt Hinzugekommene zuerst wieder herausgeht: Kiste, Klammern und Zeitungshaufen. Der Drucker folgt der Reihenfolge des Eintreffens (FIFO), die Playlist erlaubt direkten Zugriff über die Nummer, also gerade keinen Stapel.
Frage dich bei jeder Situation: Kommt das zuletzt Hinzugekommene als Erstes wieder heraus, und ist nur das oberste Element erreichbar?
Bei der Reihenfolge des Eintreffens (Drucker) und beim Zugriff über eine Nummer (Playlist) fehlt die LIFO-Eigenschaft.
A2
Die Methode gerade
AFB IIIMix

Die Methode Stack<Integer> gerade(int[] a) soll alle geraden Zahlen der Reihung a in der Reihenfolge ihres Auftretens auf einen neuen Stapel legen und diesen zurückgeben.

Implementiere den Rumpf der Methode: Setze die Bausteine in die richtige Reihenfolge. Zwei Bausteine gehören nicht dazu.

Setze den Bauplan von links nach rechts zusammen. Ein Klick legt den Baustein auf den nächsten freien Platz, ein Klick im Bauplan legt ihn zurück. Enter funktioniert genauso.
Zuerst entsteht der leere Stapel, dann durchläuft die Schleife alle Indizes von 0 bis a.length − 1. Gerade Zahlen erkennt man am Rest 0 bei Division durch 2 (a[i] % 2 == 0); a[i] / 2 == 0 trifft nur auf 0 und 1 zu. Zurückgegeben wird der ganze Stapel, nicht nur ein Element. Für a = {3, 8, 6, 5, 10} liegen 8, 6, 10 im Stapel, oben die 10.
Die Methode braucht vier Schritte: Stapel anlegen, alle Elemente durchlaufen, bei geraden Zahlen push aufrufen, den Stapel zurückgeben.
Eine Zahl ist gerade, wenn der Rest bei Division durch 2 gleich 0 ist (%). Die Schleife muss vor der schließenden Klammer enden und vor return.
A3
Stapelprotokolle prüfen
AFB II

Überprüfe die sechs Aussagen zu einem anfangs leeren Stapel: Klicke die falschen an und trage jeweils den richtigen Wert ein.

Klicke die Zeilen an, die du für falsch hältst — dabei klappt ein Feld für die Korrektur auf. Geprüft wird beides: die Auswahl und die Korrekturen.
Jedes push legt ein Element auf, jedes pop nimmt das oberste weg. In Zeile 2 liegt nach pop wieder die 3 oben, in Zeile 4 liegt nach push(2) die 2 oben (darunter 1 und 6), und in Zeile 6 bleibt nach einem pop noch eine 7 übrig.
Zeichne dir zu jeder Zeile den Stapel auf: unten das erste push, oben das letzte. Ein pop streicht immer das oberste Element durch.
Prüfe bei den falschen Zeilen, welches Element nach dem letzten Aufruf oben liegt: In Zeile 4 wurde zuletzt die 2 aufgelegt.