• Keine Ergebnisse gefunden

8. ¨Ubungsblatt Aufgabe 1

N/A
N/A
Protected

Academic year: 2022

Aktie "8. ¨Ubungsblatt Aufgabe 1"

Copied!
3
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Algorithmen und Datenstrukturen Fachhochschule Wiesbaden

Sommersemester 2007 Prof. Dr. Steffen Reith

8. ¨ Ubungsblatt

Aufgabe 1 (L¨osung wird abgenommen) (B¨aume) Zur vollst¨andigen Bearbeitung dieser Aufgabe sind die folgenden Punkte zu be- arbeiten:

Implementieren Sie den abstrakten Datentyp einesbin¨aren (Such)Baums in C mit Hilfe von templates als eigene Klasse. Zu implementieren sind die Methoden insert, PrintTreeInorder, getHeight und isEmpty.

EinBeispiel f¨ur die Schnittstelle:

#ifndef TREEH

#define TREEH template <class T>

class Node {

private:

// Zeiger auf linken und rechten Teilbaum // Daten

public:

// Zugriffsmethoden Zeiger und Daten };

template <class T>

class Tree {

private:

// Wurzel des Bin¨arbaums Node<T> *root;

// Aktuelle Anzahl der Knoten im Baum unsigned long numKnots;

public:

// Konstruktor Tree();

(2)

// Destruktor

~Tree();

// F¨uge den Schl¨ussel x in den Baum ein bool insert(T x);

// Gebe alle Schl¨ussel gem¨aß inorder-Traversierung aus void printTreeInorder(void);

// Berechne die H¨ohe des Baums unsigned long getHeight();

// Teste ob Baum leer bool isEmpty();

};

#endif /* TREEH */

Die MethodeprintTreeInordergibt alle Elemente des Baums gem¨aß Inorder- Traversierung aus. Sie k¨onnen davon ausgehen, dass sich der DatentypT mit den ¨ublichen Methoden ausgeben l¨asst.

Erweitern Sie Ihren generischen Datentyp Tree um die Methode merge- Inorder(Tree<E> tree), die alle Elemente aus dem Baum tree gem¨aß Inorder-Traversierung in den aktuellen Baum einf¨ugt. D.h. die Methode mergeInorderbesucht (Inorder!) alle Knoten von treeund f¨ugt sie in den aktuellen Baum ein.

Schreiben Sie ein Testprogramm mit zweiint-B¨aument1undt2, die mit je 100 Zufallszahlen bef¨ullt werden, wobei die Zufallszahlen f¨urt1 aus dem In- tervall [1, . . . ,1000] stammen und die f¨urt2aus dem Intervall [1001, . . . ,2000].

Danach soll Ihr Testprogramm die H¨ohen vont1undt2ausgeben. Nun ver- schmelzen Siet1mitt2unter Benutzung vonmergeInorder(t2)und geben die H¨ohe des verschmolzenen Baums aus.

– Wie erkl¨aren Sie das Ergebnis der verh¨altnism¨assig großen H¨ohe des verschmolzenen Baums?

– Planen (Pseudocode notwendig!) und implementieren Sie eine mitmerge- Inordervergleichbare Methode, die einen Baum mit (deutlich) kleinerer H¨ohe liefert (Hinweis: ¨Uberlegen Sie sich eine geeignete Traversierungs- strategie f¨ur Ihre merge-Methode).

Die Abnahme erfolgt in der KW 24 vom 11.6.2007 - 15.6.2007 in den jewei- ligen ¨Ubungsgruppen.

(3)

Ubungsaufgaben ¨

Richtig oder falsch:

– Mergesort hat immer eine Laufzeit von O(nlogn).

– Insertion Sort hat immer eine Laufzeit vonO(nlogn).

– Es gibt Sortierverfahren mit einer Laufzeit von O(logn).

Geben Sie die Laufzeit von Insertion Sort an und begr¨unden Sie Ihre Antwort fundiert.

Gegeben sei T(n) = 3·T(n/3) +n undT(1) = 0. Bestimmen Sie eine Funktionf, so dass T(n) =f(n). Dabei darf T nicht in der Beschreibung von f vorkommen.

Kann man in einer linearen Liste effizient mit der bin¨aren Suche arbeiten? Be- gr¨unden Sie Ihre Antwort!

Referenzen

ÄHNLICHE DOKUMENTE

Modifizieren Sie Ihre Implementation von Merge Sort so, dass Sie messen k¨onnen, wieviel Zeit der reine Sortiervorgang ben¨otigt (also ohne Erzeugung der Zufallszahlen und

• Erweitern Sie Ihren generischen Datentyp Tree um die Methode merge- Inorder(Tree&lt;E&gt; tree), die alle Elemente aus dem Baum tree gem¨aß Inorder-Traversierung in den aktuellen

Die Methode void calcula- teBalanceAll() berechnet die Balance aller Knoten des Baums und setzt die balance Komponente der Knoten auf den entsprechenden Wert.. Die Me- thode

– Eine Methode void printHashAll(), die alle im Hash gespeicherten Strings (inkl. Einf¨ ugeh¨ aufigkeit f¨ ur jeden String) nacheinander ausgibt. • Implementieren Sie ein

Bei der Anwendung soll es sich um einen Demonstrator handeln, der zeigt, wie eine Anwendungen in der PaaS App Engine den Speicherdienst S3 steuern kann. Die L¨osung der Aufgabe ist

KOALA ist eine internet-basierte Anwendung um AWS-kompatible Cloud Com- puting Infrastrukturen (IaaS) zu steuern. KOALA unterst¨utzt die Arbeit mit den Cloud-Diensten EC2, S3, EBS

• Jede Interpolation soll eine andere Farbe erhalten.. Dabei k¨ onnten cell arrays

Dabei wird die Recovery-Zeit (T ) nach dem Inversionspuls so gew¨ ahlt, dass jeweils die longitudinale Magneti- sierung einer der beiden Spin-Komponenten sich im Nulldurchgang