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 Stichworten 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