Klausur PR25 im SS'00

Aufgabe 1: Erweitern Sie die Klasse CWarteschlange (ähnlich wie Ihre Übungslösung) um eine int-Funktionsmethode streuung, die die größte Abweichung (Differenz) vom Durchschnittswert (Summe/Anzahl) aller Elemente liefert (eine positive Ganzzahl). Die Datenstruktur der Klasse ist:

class CWarteschlange { protected:
	int* inhalt;
	int aeltestes, juengstes, anzahl, laenge;
public...

Aufgabe 2. Zeichnen Sie das Einfügen in eine rückwärts verkettete Liste vor einem gegebenen Knoten:

class Knoten { public :
	int wert;
	Knoten* verbindung;
	Knoten(int w, Knoten* v) : wert(w), verbindung(v) {}
}
class Liste { public :
	Knoten* anker;
	void einfuegen (Knoten* wohin, int wert) {
		wohin -> verbindung = new Knoten(wert, wohin -> verbindung);
	}
}

Ihre Zeichnung soll den Zustand der Liste vor und nach dem Einfügen darstellen.


Aufgabe 3.: Kreuzen Sie die richtigen Antworten an und geben Sie Ihre Begründung mit Stich­worten dazu. Ohne Begründung gilt Ihre Antwort als falsch.


Aufgabe 4: Gegeben sei ein beliebiger Typ T und der abstrakter Datentyp (ADT) TBehaelter mit den Operationen

void schreiben(TBehaelter, T);
T lesen(TBehaelter);

Implementieren Sie eine Klasse CBehaelter mit den beiden entsprechenden Methoden.


Aufgabe 5: Implementieren Sie die Funktionsschablone max mit dem folgenden Prototyp:

template <class T> T max(const T a, const T b);

Ausprägungen dieser Schablone sollen den größeren der zwei Parameter zurückgeben. Was ist die Voraussetzung dafür, dass die Schablone für eine Klasse ausgeprägt werden kann? Beispiel:

class Klasse { ... }
Klasse objekt1, objekt2, objekt3; ...
objekt3 = max (objekt1, objekt2); // Ausprägung mit einer Klasse