MINT üben

Datenstrukturen im Abitur

DynArray, Stapel und Schlange: Operationen lesen, Strukturen wählen, Fehler finden.

Dein Fortschritt:
0 / 0 Aufgaben
1

Übungsaufgaben

Dreißig Aufgaben von den Operationen der Prüfungsvorgaben (AFB I) bis zur Abschätzung des Aufwands (AFB III). Jede Übung meldet sofort zurück.

A1
Länge und Index im Vergleich
AFB I

Eine DynArray d ist anfangs leer. Berechne in jeder Zeile beide Größen und setze das passende Zeichen.

Setze zwischen die beiden Angaben das passende Zeichen: Klick schaltet ? → < → = → > weiter. Mit der Tastatur: Tab zum Feld, dann <, = oder >.
Länge nach 5 × append und 2 × deleteLänge nach 4 × append
letzter gültiger Index bei Länge 9Länge von 8 Elementen
Länge nach 6 × append und 3 × setItemLänge nach 7 × append und 2 × delete
Zahl der gültigen Indizes bei Länge 7größter gültiger Index bei Länge 7
Länge nach 4 × insertAt und 4 × deleteLänge einer leeren Reihung
append und insertAt verlängern um 1, delete verkürzt um 1, setItem ändert die Länge nicht: 5 − 2 = 3 gegen 4; 6 gegen 7 − 2 = 5; 4 − 4 = 0 gegen 0. Bei Länge n ist der letzte Index n − 1 (9 − 1 = 8), und es gibt n gültige Indizes: 7 gegen 6.
Zähle bei jeder Seite mit: plus 1 für append und insertAt, minus 1 für delete, setItem zählt nicht.
Der letzte gültige Index ist immer um 1 kleiner als die Länge, denn die Zählung beginnt bei 0.
A2
Gültige Aufrufe
AFB I

Das Bild zeigt die DynArray d. Jeder Aufruf der Tabelle wird auf diesem Zustand ausgeführt. Ein Aufruf mit ungültigem Index bricht ab und lässt d unverändert.

4081152163234425

Lies am Bild ab, ob der Index jeweils gültig ist, und gib die Länge von d danach an.

Setze für jede Zeile die Ausgänge: Klick auf ein Feld schaltet ? → Zustand 1 → Zustand 2 … weiter. Tastatur: Enter/Leertaste schaltet, Pfeiltasten wandern durch die Tabelle.
AufrufIndex gültigLänge danach
getItem(5)
getItem(6)
delete(5)
insertAt(2, 7)
setItem(7, 1)
setItem(0, 9)
Das Bild hat 6 Elemente, gültig sind die Indizes 0 bis 5. getItem(5) und setItem(0, 9) ändern die Länge nicht (6), delete(5) macht 5 daraus, insertAt(2, 7) macht 7. getItem(6) und setItem(7, 1) haben ungültige Indizes: Die Länge bleibt 6.
Zähle die Felder im Bild: Welcher Index ist der letzte, der noch belegt ist?
Nur append, insertAt und delete ändern die Länge. Bei ungültigem Index wird nichts ausgeführt.
A3
Die Playlist wird umgebaut
AFB II

Das Bild zeigt eine Playlist p (DynArray von Titeln) vor diesem Programmstück:

p.delete(1);
p.insertAt(3, "Beat");
p.setItem(0, p.getItem(2));

Interpretiere das Programmstück am Bild und klicke nacheinander die gefragten Titel an.

Klicke die gesuchte Stelle an. Mit der Tastatur: Tab oder Pfeiltasten zum Wandern, Enter zum Auswählen.

Rock0Jazz1Pop2Soul3Folk4Playlist p vor dem ProgrammstückIndex
delete(1) entfernt Jazz: Rock, Pop, Soul, Folk. insertAt(3, "Beat") schiebt Folk nach hinten: Rock, Pop, Soul, Beat, Folk. setItem(0, p.getItem(2)) ersetzt Rock durch Soul: Soul, Pop, Soul, Beat, Folk. Folk steht an Index 4, Pop an Index 1, Soul doppelt.
Führe die drei Zeilen nacheinander aus und notiere dir nach jeder Zeile die ganze Playlist mit ihren Indizes.
Nach delete(1) und insertAt(3, …) hat sich die Reihenfolge verschoben. setItem überschreibt nur einen Platz, es verschiebt nichts.