31.01.2014 Aufrufe

Übungsblatt 2 - Universität Trier

Übungsblatt 2 - Universität Trier

Übungsblatt 2 - Universität Trier

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Fachbereich IV - Abteilung Informatik<br />

Algorithmen und Datenstrukturen<br />

<strong>Universität</strong> <strong>Trier</strong><br />

Oliver Zlotowski Tel.: (0651)201-3280<br />

2. Übung:<br />

Softwarepraktikum C++, LEDA und STL<br />

Wintersemester 2004/2005 25. November 2004<br />

Abgabe per Email bis Donnerstag, 02.12.2004<br />

Aufgabe 2.1: (Punkte 5)<br />

Implementieren Sie eine generische Variante des Heapsort und des BubbleSort Algorithmus,<br />

so dass die implementierten Funktionen mit einem Iterator-Typ parametrisiert werden.<br />

Aufgabe 2.2: (Punkte 5)<br />

Der folgende Code veranschaulicht, wie Operatoren für einen benutzerdefinierten Datentyp<br />

definiert werden können<br />

struct A {<br />

int x;<br />

A() : x(0) {}<br />

A& operator=(const A& it) // A a, b; a = b;<br />

{ x = A.x;<br />

return *this;<br />

}<br />

A& operator++() // A a; ++a; bzw. a++;<br />

{ x++;<br />

return *this;<br />

}<br />

A operator++(int)<br />

{ A a; a.x = x; x++;<br />

return a;<br />

}<br />

int& operator*() { return x; } // Dereferenzierung: A a; *a = 2;<br />

const int& operator*() const { return x; }<br />

bool operator==(const iterator& it) const { return x == it.x; }<br />

bool operator!=(const iterator& it) const { return !operator==(it); }<br />

};<br />

Implementieren Sie einen bidirektionalen Iterator für die in der Vorlesung besprochene<br />

Klasse list. Sortieren Sie die Liste mit Hilfe der generischen BubbleSort Funktion aus<br />

Aufgabe 2.1.


Aufgabe 2.3: (Punkte 10)<br />

Ändern Sie die Implementierung der Liste aus der Vorlesung, so dass die Liste Objekte<br />

eines beliebigen Typs speichern kann. Schreiben Sie ein Programm, dass eine Liste<br />

von d2 point speichert und sortieren Sie diese Liste mit dem Verfahren aus Aufgabe<br />

2.1. Implementieren Sie dazu den Vergleichsoperator > für d2 point. Verwenden Sie die<br />

x − y−Ordnung, d.h., p.x > q.x dann ist p > q bzw. falls p.x == q.x dann werden die<br />

y-Koordinaten verglichen.<br />

Zu allen Implementierungen bitte ein Hauptprogramm, um die gewünschte Funktionalität<br />

zu zeigen.<br />

http://www.informatik.uni-trier.de/Algorithms/

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!