Lernziele
Dieses Aufgabenblatt dient der Wiederholung.
Sie können...- einfache dynamische Datenstrukturen (einfach verkettete und doppelt verkettet) objektorientiert implementieren.
- Basisalgorithmen auf einer einfach verketteten Liste implementieren.
- Basisalgorithmen auf einer doppelt-verketteten Liste analysieren und implementieren.
Aufgabe 1 - Methoden einer einfach verketteten Liste
A1a: Die einfach verkettete Liste - Count-Methode
Implementiere die Methode
count
.Diese bekommt einen Wert übergeben und sucht dann die Liste durch nach allen Elementen, die diesem Wert entsprechen. Dabei zählt diese wie oft der Wert in der Liste vorkommt. Die Implementation kann ähnlich zur Hilfsmethode _findLastElement vorgenommen werden und kann rekursiv wie iterativ gelöst werden. Implementiere dazu eine neue einfach verkettet Liste oder nutze die Lösung aus dem Übungsblatt Dynamische Datenstrukturen Teil 1.A1b: Die einfach verkettete Liste - Clear-Methode
Implementiere die Methode
clear
.Diese löscht alle Elemente der Liste. Die Implementation sollte sich daran orientieren, was im Vorlesunginput Dynamische Datenstrukturen II beim Überschreiben des ersten Elements bei der append-Methode aufgetreten ist.A1c: Die einfach verkettete Liste - Copy-Methode
Implementiere die Methode
copy
.Diese soll eine tatsächliche Kopie der Liste, also eine Kopie aller Elemente der Liste in einer neuen Liste zurückliefern. Beachte hierbei, dass die Liste und die Kopie nicht mehr auf die selben Objekte zeigen dürfen.A1d: Die einfach verkettete Liste - Weitere Methoden
Analysiere die weiteren Methoden - insert, pop, index, extend, sort, reverse - der Liste nach neuer oder schon in anderen Methoden angewandter Algorithmik.
Aufgabe 2 - Doppelt verkettete Listen
A2a: Doppelt verkettet Liste
Für alle außer SE-GYM! Löse die Aufgabe 2 aus dem Aufgabenblatt Dynamische Datenstrukturen Teil 1.
A2b: Die doppelt verkettete Liste - Weitere Methoden
Analysiere die Methoden aus Aufgabe 1. Welche der Methoden können mit einer doppelt-verketteten Liste effizienter gelöst werden, welche haben den gleichen Aufwand? Implementiere die effizienteren Methoden.