MINT üben

Lineare Datenstrukturen

Zehn Aufgaben zum Nachverfolgen von Algorithmen — mit gestuften Tipps.

Dein Fortschritt:
0 / 0 Aufgaben
2

Aufgabenblock — AFB II

Zehn Aufgaben aus dem ganzen Kapitel: Abläufe nachverfolgen, Zwischenstände bestimmen, Algorithmen vergleichen — mit gestuften Tipps, wenn du nicht weiterkommst.

A1
Operationen auf DynArray
AFB II

Die Reihung l = [10, 20, 30] erlebt nacheinander insertAt(0, 5), append(40), delete(2).

a) Welchen Wert liefert danach getLength()? b) Welchen Wert liefert getItem(2)?

Ansatz: Nach jeder Operation die ganze Reihung notieren.
Weg: [5, 10, 20, 30] → [5, 10, 20, 30, 40] → delete(2) entfernt 20.
Lösung: a) 4 b) 30
Vollständige Lösung
Nach dem Einfügen vorn steht 20 an Index 2 und wird gelöscht: [5, 10, 30, 40]. Hinweis: Wer den Index vor dem Einfügen verwendet, löscht fälschlich 30.
A2
Maximum mit Index
AFB II

Der Algorithmus „Index des Maximums“ (Start pos = 0, ersetzen bei getItem(i) > getItem(pos)) läuft auf l = [7, 3, 12, 12, 5].

a) Wie oft wird pos ersetzt? b) Welchen Index liefert der Algorithmus?

Ansatz: Tracetabelle mit i, getItem(i), getItem(pos) anlegen.
Weg: Nur bei i = 2 ist 12 > 7; bei i = 3 ist 12 > 12 falsch.
Lösung: a) 1 b) 2
Vollständige Lösung
pos wird nur bei i = 2 ersetzt. Die zweite 12 an Index 3 ersetzt nicht, weil der Vergleich echt größer verlangt. Rückgabe: Index 2 (erstes Maximum).
A3
Löschen in der Vorwärts-Schleife
AFB II

Eine Vorwärts-for-Schleife löscht alle Einsen aus l = [1, 1, 5, 1] mit delete(i).

a) Welche Länge hat l danach? b) Wie viele Einsen stehen noch darin?

Ansatz: Nach jedem delete die Reihung neu aufschreiben und i trotzdem erhöhen.
Weg: i = 0 löscht → [1, 5, 1]; i = 1 prüft 5; i = 2 löscht → [1, 5]; Ende.
Lösung: a) 2 b) 1
Vollständige Lösung
Die zweite Eins rückt auf Index 0 und wird übersprungen. Ergebnis [1, 5] — falsch; richtig wäre [5].