Bäume - TU Chemnitz

Werbung
Übung Datenstrukturen
Bäume
Übung Binärbaum
7
2
10
1
9
34
7
3
8
25
7
5
11
13
19
3
Aufgabe 1
Geben Sie die Reihenfolge der besuchten Knoten nach Prä-, In-, Post- und Levelorder an!
17
Übung Binärbaum
Aufgabe 2
Schreiben Sie je eine Funktion / Methode, die
a) die Anzahl der Blätter
b) die Anzahl linker Söhne
c) die Höhe
eines beliebigen binären Baumes bestimmt.
Übung Binärbaum
7
10
Aufgabe 3
Gegeben sei ein beliebiger binärer Baum. Jeder Knoten beinhalte einen Integer-Wert.
1
9
Schreiben Sie eine Funktion / Methode, die testet, ob 34
7
8
25
sich ein Knoten mit einem bestimmten Integer-Wert im Baum befindet!
3
Übung Binärbaum
Aufgabe 4
Schreiben Sie eine Funktion, die einen gegebenen Binärbaum wie folgt spiegelt:
17
10
9
21
13
17
21
10
13
9
Übung Binärbaum
Aufgabe 5
Schreiben Sie eine iterative Funktion zur Inorder-Durchmusterung
eines binären Baumes. Jeder Knoten beinhalte einen Integer Wert.
Hinweis:
Zur Zwischenspeicherung der Baumknoten steht ein ADT
nodeStack mit den üblichen Methoden (pop, push, isEmpty) zur
Verfügung.
Übung Binärbaum
Aufgabe 6
Schreiben Sie eine Funktion, die einen binären Baum in
Levelorder formatiert auf dem Bildschirm ausgibt (d.h. für
jede neue Baumebene eine neue Zeile).
Jeder Knoten des Baumes enthalte einen ganzzahligen Wert.
Hinweis:
Zur Zwischenspeicherung der Baumknoten ist ein ADT
nodeQueue mit den üblichen Methoden (enqueue,
dequeue, isEmpty) gegeben.
Übung Suchbaum
17
10
Aufgabe 7
9
21
13
39
Löschen Sie (grafisch) aus dem dargestellten binären Suchbaum nacheinander 33
die Elemente 13, 21, 39, 17.
Wenden Sie dabei die beiden in der Vorlesung vorgestellten Strategien an.
23
76
36
45
Geben Sie nach jedem Löschvorgang den resultierenden Baum an.
Hinweis
Wenn ein Knoten mit zwei Söhnen gelöscht wird, ist das Ergebnis sowohl
mittels „Löschen durch Verschmelzen" als auch "Löschen durch Kopieren"
darzustellen.
35
63
99
Übung Suchbaum
Aufgabe 8
Schreiben Sie eine Funktion / Methode, die testet,
ob ein gegebener Binärbaum ein Suchbaum ist.
Übung Suchbaum
Aufgabe 9
Schreiben Sie eine iterative Funktion / Methode, die
einen neuen Wert in einen binären Suchbaum einfügt.
Übung Suchbaum
Aufgabe 10
Entwickeln Sie einen Algorithmus, der ein (aufsteigend) sortiertes Feld
von N Elementen derart in einen binären Suchbaum einfügt, dass der
Baum nach dem Einfügen aller Elemente perfekt balanciert ist.
Übung Suchbaum
Aufgabe 11
struct node {
Die Knoten eines binären Suchbaums wurden zusätzlich mit int info;
einer Balanceinformation versehen.
int balance;
node* left;
Die Balance eines Knotens entspricht der Differenz (Höhe des rechten Teilbaums) – (Höhe des linken Teilbaums).
node* right;
};
Modifizieren Sie die Einfügefunktion für binäre Suchbäume derart, so dass nach dem Einfügen alle Balanceinformationen wieder korrekt sind.
Hinweis
Vor dem Einfügen sind alle Balanceinformationen korrekt. Aktualisieren Sie deshalb nur die
Knoten, deren Balance sich tatsächlich geändert hat.
Übung AVL-Baum
Aufgabe 12
Fügen Sie in einen anfangs leeren AVL-Baum nacheinander die Zahlen
von 1 bis 7 ein.
Zeichnen Sie den Baum nach jedem Einfügeschritt und notieren Sie
dabei den Balancewert jedes Knotens.
Falls nach einem Einfügeschritt eine Verletzung des AVL-Kriteriums
auftritt, kennzeichnen Sie den betroffenen Knoten, führen die
erforderliche Gegenmaßnahmen durch und zeichnen den Baum erneut.
Übung AVL-Baum
17
10
9
39
21
13
5
63
39
7
40
64
11
66
Aufgabe 13
Zeichnen Sie die vorliegenden AVL-Bäume nach dem Löschen des Elements 39.
Geben Sie im Fall einer erforderlichen Ausbalancierung die jeweils benutzte Methode (Einfach- oder Doppelrotation) an.
Übung AVL-Baum
37
10
55
5
13
7
11
43
21
39
29
66
46
51
61
65
77
70
Aufgabe 14
88
99
Zeichnen Sie den vorliegenden AVL-Baum nach dem Löschen des Elements 7.
Geben Sie im Fall einer erforderlichen Ausbalancierung des Baumes die jeweils benutzten
Methoden (Einfach- oder Doppelrotation) an.
Übung B-Baum
Aufgabe 15
Gegeben sei folgender B-Baum der Höhe 2 und Ordnung 5:
Fügen Sie in diesen B-Baum nacheinander die Schlüssel 33, 29 und 1 in der angegebenen
Reihenfolge ein!
Zeichnen Sie nach jeder Einfügung den resultierenden Baum und benennen bzw. begründen Sie Ihre
Schritte!
Übung B-Baum
.17.48.
. 2. 3.
.
.
.
.23.29. . .
.
.55.65.
.
.
Aufgabe 16
Löschen Sie aus dem vorliegenden B-Baum zunächst das Element 48 und
zeichnen Sie den resultierenden Baum!
Wiederholen Sie danach den Vorgang für Element 2!
Herunterladen