Inhaltsverzeichnis

Eine verkettete Liste mit Java

Definition: Verkettete Liste

Eine (verkettete) List ist ein linearer abstrakter Datentyp mit den folgenden Methoden:

Erarbeitung

Objektdiagramm

Das Objektdiagramm einer Liste sieht folgendermaßen aus.

Die Liste besteht aus verketteten Listenknoten (Objekt: Node), jeder Knoten hat (mindestens) zwei Attribute: Eine Referenz auf die mit dem Knoten gespeicherten Daten (content) und eine Referenz auf den nächsten Listenknoten (nextNode). Das Listenobjekt liste01 mit seinen Methoden dient der Verwaltung der Knoten und damit der gespeicherten Daten.

Die Listenklasse muss mindestens über ein Attribut first verfügen, welches die Referenz auf das erste Knotenobjekt enthält, so dass ausgehend vom ersten Knoten jeder Listenknoten iterativ für weitere Operationen erreichbar ist.

Implementationsdiagramm

Hinweise:

Implementation

Arbeite mit der BlueJ Vorlage von https://codeberg.org/qg-info-unterricht/verkettete-liste-java und bearbeite folgenden Aufgaben, um die Liste gemäß des obigen Implementationsdiagramms zu programmieren.


(A1) Die Klasse ''Node''

Die Klasse Node ist in der Vorlage bereits vollständig implementiert. Betrachte den Quellcode, vergleiche ihn mit dem oberen Klassendiagramm und mache dich mit Bedeutung und Funktionsweise der Methoden vertraut. Überprüfe besonders die Typen der Parameter und Rückgabewerte hinsichtlich der Parametrisierung der Klasse mit dem Typparameter T.


(A2) Konstruktor und die Methode ''isEmpty()''

Das Bild zeigt das Objektdiagramm einer leeren Liste. Füge der Klasse List einen Konstruktor hinzu, der eine solches Listenobjekt erzeugt. Teste den Konstruktor, indem du ein Listenobjekt erzeugst und mit dem Objektinspektor untersuchst, ob er eine leere Liste wie gewünscht erzeugt.

Hilfe

Implementiere dann die Methode isEmpty. Welches Kriterium kannst du verwenden, um festzustellen, dass die Liste leer ist? Vergleiche das Objektdiagramm der leeren Liste mit dem der Liste mit Knoten oben auf der Seite.

Teste die Methode zunächst mit deiner leeren Liste.

Lösungsvorschlag

Weitere Methoden der Liste

Bearbeite die Arbeitsaufträge der Reihe nach, um deine Listenimplementation zu vervollständigen.

Überprüfe deine Implementation, wenn diese vollständig ist durch ausführen der automatisierten Tests, indem du auf der grünen Testklasse ListTest mit der rechten Maustaste den Punkt Alles testen auswählst.


FilenameFilesizeLast modified
append.odp201.5 KiB20.10.2021 16:01
append.pdf206.8 KiB20.10.2021 16:01
liste.odp144.5 KiB20.10.2021 15:48
liste.pdf158.3 KiB20.10.2021 15:48

<<< Zurück zum Vergleich: Arrays und Listen