Einführung Informatik/Algorithmen und Datenstrukturen

Werbung
Einführung Informatik/Algorithmen und Datenstrukturen
Prof. Dr. Gunter Saake
SS 00
Ilona Blümel, Stephan Dassow, Dr. Martina Engelke, Roland Jesse, Marco Plack, Dr. Kai-Uwe Sattler, Heiko
Timm
12. Übungsblatt
Aufgabe 57
Schreiben Sie eine Methode delete(int x) für das Löschen von Knoten mit gegebenem Element in
Suchbäumen (keine AVL-Bäume!). Welche Fälle sind zu unterscheiden?
Aufgabe 58
a) Was ist ein ausgeglichener (AVL-) Baum? Weshalb ist es erforderlich, binäre Bäume
auszugleichen?
b) Erläutern Sie den Algorithmus für das Einfügen von Knoten mit gegebenem Element in AVLBäumen am Beispiel des Einfügens der natürlichen Zahlen von 14, 15, 17, 7, 5, 10 und 16 in
dieser Reihenfolge.
c) Ist es sinnvoll, die bisher genutzte Datenstruktur Baum zu erweitern?
Aufgabe 59
Gegeben sei folgender AVL-Baum:
25
12
3
1
38
15 27
47
26
46 48
Löschen Sie die Knoten 15, 38, 26, 25 und 12 in dieser Reihenfolge. Geben Sie alle notwendigen
Schritte (Rotationen) beim Löschen an, damit der Baum ausgeglichen beibt. Skizzieren Sie den AVLBaum nach jedem Löschen eines Elementes.
Aufgabe 60
Was ist ein B-Baum der Ordnung m? Beschreiben Sie den Aufbau eines B-Baumes an einem
selbstgewählten Beispiel. Geben Sie eine geeignete Datenstruktur an!
Aufgabe 61
Tries
a) Geben Sie einen Patricia-Baum über dem Alphabet  = { A,B,C,D } für die Zeichenketten
AAABD, AACCD, ABABCD, ABBBCD, BABBCD, CBABDA, CCAABD, CCBACD an.
b) Beschreiben Sie eine geeignete Datenstruktur zur Repräsentation von Knoten eines PatriciaBaums (Java-Klasse) !
c) Geben Sie basierend auf der Datenstruktur aus b) einen Algorithmus zum Suchen an (Java
oder Pseudo-Code)!
d) Skizzieren Sie einen Algorithmus zum Einfügen einer neuen Zeichenkette !
Aufgabe 62
Verkettung der Überläufer bei Kollision
a) Geben Sie die Typdeklaration für die unten angegebene Hashtabelle an und initialisieren Sie die
Tabelle.
b) Fügen Sie die Strings Dassow, Engelke, Jesse,. Blümel und Plack in die folgende Hashtabelle ein.
Die Hashfunktion soll nur vom dritten Buchstaben der Strings abhängen und ergibt sich aus der
Nummer dieses Buchstabens im Alphabet modulo 11.
Nummer von Buchstaben:
a b c d e f g h i
1
2
3
4
5
6
7
8
0
1
2
3
4
5
6
7
8
9
10
9
j
k
l m n o p q
r
s
t
u v w x y
z
ä ö ü ß
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Saake
Timm
Sattler
Aufgabe 63
Gegeben sei die Hashtabelle
0
6
1
11
2
9
3
24
4
73
5
18
6
3
Diese ist unter Verwendung der Hashfunktion h(k) = k mod 7 und linearem Sondieren durch Eintragen
der Elemente in einer gewissen Reihenfolge entstanden (k sei eine natürliche Zahl).
Geben Sie alle Reihenfolgen an, in denen die Elemente in die anfangs leere Hashtabelle eingefügt
worden sein können.
Aufgabe 64
Gegeben sei die Menge M = {11, 13, 17, 19, 23, 25, 29, 31, 35}.
a) Geben Sie für die Hash-Funktion f(x) = x mod 10 die zu M gehörende Hashtabelle bei Verkettung
der Überläufer an. Bestimmen Sie die Hashtabelle zu M mit m = 10 (Größe der Hashtabelle) und
quadratischer Sondierung unter Verwendung der Hash-Funktion f(x) = x mod 7.
b) Implementieren Sie in JAVA das Einfügen und Aufsuchen von Daten (vom Typ int) mittels
Verkettung der Überläufer unter Verwendung der Hash-Funktion f(x) = x mod p mit festem
gegebenen p.
Herunterladen