Zum Menü springen.

Übungsblatt 6: Objektorientierte Datenstrukturen

Abgabe bis Mittwoch, 10. Juni, 10:00 Uhr!

Aufgabe 6-1

Wiederholen Sie das Vorlesungskapitel zu dynamischen Datenstrukturen, insbesondere der linearen Liste. Vergleichen Sie die Eigenschaften mit denen eines Arrays anhand folgender Teilaufgaben. Lösen Sie diese Teilaufgaben wahlweise in „natürlicher Sprache“ nach Dr. Bürg oder in Java.

  1. Schreiben Sie eine Klassenmethode, die einen vorgegebenen Wert an vorgegebener Stelle in einen Array einfügt. (Gehen Sie in Java vereinfachend davon aus, dass der Array eine Klassenvariable des Typs int[] ist und nicht als Parameter übergeben wird.)
  2. Schreiben Sie eine Objektmethode in der Klasse ListNode, die es diesen Knoten einer Liste ermöglicht, vorgegebene Werte unmittelbar nach ihnen in die Liste einzufügen. (Gehen Sie in Java vereinfachend davon aus, dass der einzufügende Wert an Ihre Methode in Form eines Objekts vom Typ ListNode übergeben wird.)
  3. Nennen Sie die typischen Anwendungsfälle für Arrays bzw. lineare Listen.

Aufgabe 6-2

Wiederholen Sie das Vorlesungskapitel zum Maximum–Sub-Array–Problem und zu statischen Datstrukturen. Schreiben Sie eine Klasse TeilArray, deren Objekte einen Sub-Array darstellen können (Array-Typ int[]).

Aufgabe 6-3

Erweitern Sie Ihre Klasse TeilArray um eine Objektmethode int summe (), welche die Summe aller Elemente des Sub-Arrays liefert.

Aufgabe 6-4 *

Schreiben Sie eine Klassenmethode, die das naïve Lösungsverfahren (kubisches Laufzeitverhalten, O(n³) ) zum Maximum–Sub-Array–Problem implementiert; sie soll auf einem Array des Typs int[] arbeiten, der als Parameter übergeben wird. Als Ergebnis genügt bei dieser Aufgabe die Rückgabe der Sub-Array–Summe.

Aufgabe 6-5 *

Schreiben Sie eine Klasse Werk, deren Objekte Einträge eines einfachen Literaturverzeichnisses darstellen können; sie sollen jeweils Angaben wie Name des Autors, Jahr der Herausgabe, Titel etc. speichern.

Tipp. Jedes Objekt des Typs Werk stellt genau ein Werk dar. Die Gesamtheit des Literaturverzeichnisses könnte möglicherweise später als Array des Typs Werk[] implementiert werden, ist jedoch nicht Teil dieser Aufgabenstellung. Hier geht es nur um einzelne Werke!

Zusatzaufgabe 6-6

  1. Machen Sie sich mit der Datenstruktur LinkedList in java.util vertraut. Recherchieren Sie, wie Sie mit Hilfe eines Iterators mit linearem Zeitaufwand eine solche Datenstruktur sequentiell durchsuchen können.
  2. Schreiben Sie beispielhaft ein Programm, welches das Einfügen eines Elements in eine LinkedList analog zu Aufgabe 6-1 demonstriert.
  3. Schreiben Sie beispielhaft ein Programm, welches das sequentielle Suchen in einer LinkedList demonstriert.
$Id: HEADER.html 2009-06-28 $
Icon  Name                                   Last modified      Size  Description
[DIR] Parent Directory - [HTM] HEADER.html 2023-10-11 10:00 3.7K [TXT] Loesung61b.java 2023-10-11 10:00 1.8K [TXT] Loesung64.java 2023-10-11 10:00 1.7K [TXT] Loesung61a.java 2023-10-11 10:00 1.1K [TXT] Loesung62.java 2023-10-11 10:00 1.0K [TXT] Loesung63.java 2023-10-11 10:00 1.0K [HTM] README.html 2023-10-11 10:00 957 [TXT] Loesung65.java 2023-10-11 10:00 301 [TXT] ListNode.java 2023-10-11 10:00 257