Vous êtes sur la page 1sur 2

Prof. Dr.

Holger Peine Datenstrukturen und Algorithmen - Übungsblatt 2 - SS2015


Prof. Dr. Holger Peine
DSA - Übungsblatt 2 Hochschule Hannover

SS 2015 (Stand 2015-04-29 17:13) Fakultät IV – Abteilung Informatik


Raum 334, Tel. 0511-9296-1830
Holger.Peine@hs-hannover.de

Thema
Generische Datentypen in Java

Spätester Termin
… für die Vorführung der Pflichtaufgaben (07 und 08): Do. 30.04.2015.

Aufgaben mit Punkten sollten Sie bevorzugt bearbeiten, da sie sich mit zentralen Themenstellungen
auseinandersetzen. Weitere Übungsaufgaben (0 Punkte) dienen der Vertiefung spezieller Teilbereiche. Es gilt: Die
Inhalte aller Übungsaufgaben und aller Vorlesungen sind Gegenstand der Prüfung.

Aufgabe 07: Listen von Strings (1 Punkt)


Verwenden Sie die Klassen Knoten und KnotenListe aus dem Code vom Skripte-Server, um eine
Liste von Strings zu verwalten.
Kopieren Sie sich dafür die in dieser Datei enthaltene Verzeichnisstrukturen uebungen/… und net/…
jeweils komplett in ein eigenes Verzeichnis V und starten Sie javac und java aus V heraus bzw.
importieren Sie V als Quellverzeichnis in eine Java-Entwicklungsumgebung wie Eclipse.
Studieren Sie den Quelltext von Knoten und KnotenListe , so dass Sie ihn vollständig verstehen
und Fragen dazu beantworten können.
Erstellen Sie ein eigenes Test-Programm StringListenTester.java (das ebenfalls zum Package
uebungen.aufgabe07 gehören soll, also im Verzeichnis uebungen/aufgabe07/ stehen muss),
das eine Liste von Strings anlegt, in diese mindestens fünf verschiedene Elemente einfügt und alle
definierten öffentlichen Methoden der Klasse KnotenListe testet.
Starten Sie ihr Testprogramm aus dem Verzeichnis V heraus. Erhalten Sie stets das gewünschte Ergebnis?

Aufgabe 07a: Entfernen aus Liste von Strings (0 Punkte)


Fügen Sie zur Klasse KnotenListe aus Aufgabe 07 eine Methode boolean entferne(E elem)
hinzu, die versucht, das angegebene Element aus der Liste zu entfernen (bei mehrfach enthaltenen
Elementen nur das erste) und zurückgibt, ob das Element in der Liste enthalten war.

Stand 2015-04-29 17:13 Seite 1 von 2


Prof. Dr. Holger Peine Datenstrukturen und Algorithmen - Übungsblatt 2 - SS2015

Aufgabe 08: Java Generics (2 Punkte)


Implementieren Sie unter Verwendung von Generics eine Klasse Pair mit den folgenden
Anforderungen:
 Es gibt zwei Attribute left und right, die einen beliebigen Typ haben können; es muss aber
für beide Attribute derselbe Typ sein.
 Es gibt einen Standard-Konstruktur, der left und right mit null initialisiert, und einen
Konstruktor, der zwei Objekte des Elementtyps erwartet und left und right mit diesen
beiden Objekten initialisiert.
 Es gibt für beide Attribute je eine get- und set-Methode. Ist dabei sichergestellt, dass nur
Argumente mit korrekten Typen übergeben werden können?
 Es gibt eine Methode mit Namen toString, die einen String zurückliefert; in diesem
String wird das Paar wie folgt ausgegeben: <Ausgabe von left, Ausgabe von right>
Testen Sie die Implementierung für ein Paar von Integer-Zahlen, ein Paar von Strings sowie ein
Paar einer Klasse Person, die aus den Attributen Vorname, Nachname und Geburtsdatum besteht. Für
die Person soll es auch eine sinnvolle Implementierung einer toString-Methode (analog der obigen
Beschreibung) geben. Die verwendete Testklasse ist ebenfalls zu dokumentieren und mit vorzustellen.
Am besten, Sie fassen alle nötigen Dateien zu einem separaten Package uebungen.aufgabe08
zusammen und legen sie in einem entsprechenden Verzeichnis an.

Aufgabe 09: O-Notation (0 Punkte)


Gegeben ist ein Algorithmus C, der auf einem Array X mit n ganzen Zahlen arbeitet. Der Algorithmus
führt für jede gerade Zahl in X eine Berechnung des Aufwands O(n) und für jede ungerade Zahl in X eine
Berechnung des Aufwands O(log n) durch. Wie sind die Laufzeiten des Algorithmus C im günstigsten und
ungünstigsten Fall? Wo liegt der durchschnittliche Fall, wenn es keine zusätzlichen Informationen über
die Zahlen in X gibt?

Stand 2015-04-29 17:13 Seite 2 von 2

Vous aimerez peut-être aussi