• Keine Ergebnisse gefunden

Datenstrukturen und Algorithmen Sommersemester 2012

N/A
N/A
Protected

Academic year: 2021

Aktie "Datenstrukturen und Algorithmen Sommersemester 2012"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Fachbereich Informatik Prof. Dr. Peter Becker

Datenstrukturen und Algorithmen Sommersemester 2012

19. Mai 2013

Aufgabenblatt 7

Aufgabe 1 (Typeinschr¨ankung)

Implementieren Sie eine generische Methode max2(), die das zweitgr¨oßte Element einer Liste (Daten- typ List<T> ermittelt und als Ergebnis liefert.

• Um das zweitgr¨oßte Element einer Liste bestimmen zu k¨onnen, m ¨ussen Sie die in der Liste ent- haltenen Objekte vergleichen k¨onnen. Damit dies gew¨ahrleistet ist, m ¨ussen Sie eine entsprechende Typeinschr¨ankung definieren (vgl. Folie 159 f.).

• Achten Sie darauf, dass die ¨ubergebene Liste mindestens zwei Elemente enth¨alt. Sehen Sie f¨ur den Fall, dass die Liste weniger als zwei Elemente enth¨alt, geeignete Maßnahmen vor. Sie k¨onnten z.B. null als Ergebnis liefern oder eine IllegalArgumentException ausl¨osen.

• Verwenden Sie f¨ur die Iteration ¨uber die Liste einen Iterator (siehe Folien 142 f.) oder die foreach- Schleife (siehe Folie 144 ff.).

• Schreiben Sie ein kleines Testprogramm f¨ur Ihre Methode max2().

Aufgabe 2 (Comparable f ¨ur generische Paarklasse implementieren)

Erweitern Sie Ihre Implementierung der generischen Klasse f¨ur Paare von Aufgabenblatt 5, Aufgabe 3 so, dass

• als Komponententyp nur Typen zugelassen sind, die die Schnittstelle Comparable implementie- ren (Achtung: Typeinschr¨ankung notwendig) und

• die Klasse f¨ur Paare diese Schnittstelle selbst implementiert.

Der Vergleich von zwei Paaren Paar(a, b) und Paar(c, d) sei wie folgt definiert:

• Paar(a, b) = Paar(c, d), wenn a = c und b = d gilt,

• Paar(a, b) < Paar(c, d), wenn a < c oder a = c ∧ b < d gilt und

• Paar(a, b) > Paar(c, d), wenn a > c oder a = c ∧ b > d gilt.

Schreiben Sie ein kleines Testprogramm: Erzeugen Sie eine Liste von Paaren und ermitteln Sie das

zweitgr¨oßte Paar mit Hilfe der Methode max2() von Aufgabe 1.

(2)

Aufgabe 3 (Wildcards, Kovarianz und Kontravarianz)

Schreiben Sie eine generische Methode bildePaarListe(), die aus zwei gleichlangen Listen A = (a

1

, . . . , a

n

) und B = (b

1

, . . . , b

n

) Paare P aar(a

1

, b

1

), . . . , P aar(a

n

, b

n

) bildet und diese Paare in eine Liste C einf¨ugt. Ihre Methode hat also drei Parameter (f¨ur die Listen A, B und C).

Die Basistypen der Listen A und B m ¨ussen dabei nicht identisch sein. Auch muss der Basistyp der Paare von C weder mit dem Basistyp von A noch mit dem Basistyp von B ¨ubereinstimmen. Beispiel:

class T { }

class T1 extends T { } class T2 extends T { } ...

List<T1> a = new ArrayList<T1>();

List<T2> b = new ArrayList<T2>();

List<Paar<T>> c = new ArrayList<Paar<T>>();

...

bildePaarListe(a,b,c);

Sie m ¨ussen durch Typeinschr¨ankungen in Verbindung mit Wildcards daf¨ur sorgen, dass solche Aufrufe wie oben dargestellt einerseits m ¨oglich sind, andererseits aber auch nur sinnvolle Kombinationen von Basistypen zugelassen sind.

Hilfe zur L ¨osung der Aufgaben erhalten Sie in den ¨ Ubungen der KW 21.

Keine Abgabe der L ¨osungen, keine Korrektur, keine Punkte!

Referenzen

ÄHNLICHE DOKUMENTE

Wir nennen einen Algorithmus deterministisch wenn bei gleicher Eingabe exakt dieselben Schritte/Zust¨ ande durchlaufen werden..

Auch bei guten Hash-Funktionen treten immer noch Kollisionen auf (Taubenschlagprinzip), und wir m¨ussen sie behandeln. L¨osung

Nun h¨ atte ein bloßer Hinweis auf dieses fehlende Mittelglied das Problem der betreffenden ProbandInnen kaum gel¨ ost (bekanntermaßen erwiesen sich diese in den Interviews als

Wir m¨ ussen jetzt nur noch zeigen, dass dies auch die kleinste obere Schranke ist, dass also kein Γ &lt; α −1 obere Schranke von

Es wird Eigeninitiative und selbstst ¨andiges Arbeiten erwartet Eine Vorlesung ist keine (w ¨ochentliche) Fernsehserie!. I Eine Vorlesung wird von den H ¨orern und vom

Es wird Eigeninitiative und selbstst ¨andiges Arbeiten erwartet Eine Vorlesung ist keine (w ¨ochentliche) Fernsehserie.. ▶ Eine Vorlesung wird von den H ¨orern und vom

(a) alles Gr¨ onlandeis (b) alle Lehrer der BKS (c) alle Ziffern des 10er-Systems (d) alles Wasser in der Kanne (e) alle Bundesr¨ ate der Schweiz (f) alle Butter im K¨ uhlschrank

Die Funktion gibt true zur¨ uck, wenn die ganze Zahl n eine Primzahl oder eine starke Pseudo-Primzahl f¨ ur zehn zuf¨ allig gew¨ ahlte Basen ist, sonst wird false zur¨ uckgegeben..