Übung: Algorithmen und Datenstrukturen SS 2007

Ähnliche Dokumente
1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

2 i. i=0. und beweisen Sie mittels eines geeigneten Verfahrens die Korrektheit der geschlossenen Form.

Tutoraufgabe 1 (Vollständige Induktion): Tutoraufgabe 2 (Rotationen): Datenstrukturen und Algorithmen SS15 Übungsblatt 5 (Abgabe 3.6.

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

Informatik II, SS 2014

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

1 AVL-Bäume. 1.1 Aufgabentyp. 1.2 Überblick. 1.3 Grundidee

Algorithmen und Datenstrukturen Balancierte Suchbäume

Balancierte Bäume. Minimale Knotenanzahl von AVL-Bäumen. AVL-Bäume. Definition für "balanciert":

Dynamische Mengen. Realisierungen durch Bäume

Übung zur Vorlesung Algorithmische Geometrie

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Programmiertechnik II

Kapitel : Andere dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2013/14. Prof. Dr. Sándor Fekete

Balancierte Bäume. Martin Wirsing. in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer. SS 06

Gliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

Kapitel : Andere dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

3. Binäre Suchbäume. 3.1 Natürliche binäre Suchbäume. EADS 3.1 Natürliche binäre Suchbäume 78/598 ľernst W. Mayr

Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6

Übersicht. Rot-schwarz Bäume. Rot-schwarz Bäume. Beispiel. Eigenschaften. Datenstrukturen & Algorithmen. Rot-schwarz Bäume Eigenschaften Einfügen

Abschnitt 18: Effizientes Suchen in Mengen

Algorithmen und Datenstrukturen

Übung Algorithmen I

Algorithmen und Datenstrukturen Suchbaum

9.4 Binäre Suchbäume. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen

Copyright, Page 1 of 8 AVL-Baum

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 11, Donnerstag, 15.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

AVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl:

Nachtrag zu binären Suchbäumen (nicht (nur) AVL Bäumen: Löschen von Elementen in binären Suchbäumen. 1. Fall: zu löschendes Element ist Blatt: löschen

Algorithmen und Datenstrukturen Kapitel 7 Dynamische Mengen, das Suchproblem &

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany Stammbaum. Stammbaum. Stammbaum

Kapiteltests zum Leitprogramm Binäre Suchbäume

Datenstrukturen & Algorithmen

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2013 / 2014 Vorlesung 11, Donnerstag, 16.

13 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang

Balancierte Suchbäume

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Suchbäume mit inneren Knoten verschiedener Knotengrade.

Algorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein.

Übung: Algorithmen und Datenstrukturen SS 2007

Tutoraufgabe 1 (2 3 4 Bäume):

Nachtrag zu binären Suchbäumen

Informatik II, SS 2014

Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...)

KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN

12 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang

Datenstrukturen und Algorithmen

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis

Tutorium Algorithmen & Datenstrukturen

7. Sortieren Lernziele. 7. Sortieren

Informatik B Sommersemester Musterlösung zur Klausur vom

Tutoraufgabe 1 (2 3 4 Bäume):

15 Optimales Kodieren

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Datenstrukturen & Algorithmen

Definition 15 Rot-Schwarz-Bäume sind externe Binärbäume (jeder Knoten hat 0 oder 2 Kinder) mit roten und schwarzen Kanten, so dass gilt:

Bäume und Wälder. Bäume und Wälder 1 / 37

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Datenstrukturen. einfach verkettete Liste

DAP2-Klausur

Was bisher geschah ADT Menge mit Operationen: Suche nach einem Element Einfügen eines Elementes Löschen eines Elementes Realisierung durch

Tutoren Simon Andermatt Lukas Beck. Alexis Peter Thomas Ritter

Tutoren Jan Ebbe Pat Mächler Valentino Rugolo Sascha Scherrer. Grundlagen der Programmierung (CS101) - Blatt 8 Theorie [4 Punkte] - Praxis [12 Punkte]

Gliederung. Algorithmen und Datenstrukturen I. öschen in Rot-Schwarz-Bäumen. Löschen in Rot-Schwarz-Bäumen

Suchbäume balancieren

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Praktische Informatik I - Algorithmen und Datenstrukturen Wintersemester 2006/07

13. Binäre Suchbäume

Binärbäume: Beispiel

3.6 AVL-Bäume. (AVL = Adel son-velskii und Landis (1962)) . Seite 326/726

DATENSTRUKTUREN UND ZAHLENSYSTEME

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

Verkettete Datenstrukturen: Bäume

14. Rot-Schwarz-Bäume

Tutoraufgabe 1 (Listen):

Klausur Algorithmen und Datenstrukturen

Übung: Algorithmen und Datenstrukturen SS 2007

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Wörterbucher. Das Wörterbuch 1 / 71

Grundlagen von Datenbanken. B-Bäume, B*-Bäume Normalisierung

Wintersemester 2007/2008 Helmut Seidl Institut für Informatik TU München

Kap. 4.2: Binäre Suchbäume

WS 2009/10. Diskrete Strukturen

7. Übung Algorithmen I

6-1 A. Schwill Grundlagen der Programmierung II SS 2005

Isomorphie von Bäumen

Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10

Dynamisches Huffman-Verfahren

Vorlesung Datenstrukturen

Informatik II Vorlesung am D-BAUG der ETH Zürich

Suchen und Sortieren Sortieren. Heaps

Informatik I 8. Kapitel. B-Bäume. B-Bäume. B-Bäume. Rainer Schrader. 22. Juli 2008

Informatik II, SS 2014

Transkript:

Übung: Algorithmen und Datenstrukturen SS 07 Prof. Lengauer Sven Apel, Michael Claÿen, Christoph Zengler, Christof König Blatt 8 Votierung in der Woche vom 25.06.0729.06.07 Aufgabe 22 AVL-Bäume (a) Geben Sie die im unten angegebenen AVL-Baum enthaltenen Fehler an. 13 8 15 4 10 1 5 7 21 Lösung: Es sind zwei Fehler vorhanden. Zum einen handelt es sich nicht einmal um einen Suchbaum und zum anderen ist an einem Knoten die Balance verletzt. 13 8 15 Balance verletzt 4 10 1 5 7 21 kein Suchbaum (b) Führen Sie auf dem rechts angegebenen AVL-Baum diese Folge an Operationen durch: add(24), add(23), add(38). Geben Sie den AVL-Baum vor und nach jeder Rotation an. 1

30 50 10 25 35 55 33 37 Lösung: Der Knoten 24 kann problemlos hinzugefügt werden, die Balance bleibt an allen Knoten erhalten. 30 50 10 25 35 55 24 33 37 Der Knoten 23 sorgt dafür, dass bei 24 und 25 jeweils eine negative Balance auftreten, also der linken Teilbaum ist jeweils tiefer als der rechte Teilbaum. Um dies zu korrigieren wird eine Rechtsrotation an 25 durchgeführt. Man erhält: 30 50 10 24 35 55 23 25 33 37 Der letzte Knoten 38 führt dazu, dass beim Knoten 50 die Balance verletzt ist. Knoten 50 hat einen tieferen linken Sohn und Knoten 35 einen tieferen rechten Sohn. Damit ist zunächst eine Linksrotation an 35 und anschlieÿend eine Rechtsrotation an 50 notwending, um die Balance wieder herzustellen. 30 37 10 24 35 50 23 25 33 38 55 2

Aufgabe 23 2-3-Bäume (a) Fügen Sie manuell in einen leeren 2-3-Baum die folgenden Zahlen ein: 8, 9, 10, 2, 1, 5, 3, 6, 4 Geben Sie den entstehenden Baum nach jeder Operation an. Geben Sie die nötigen Zwischenschritte an, falls ein Knoten aufgespalten werden muss. Lösung: Zunächst einmal ganz allgemein: Daten stehen nur an den Blättern. Alle Blätter sind gleich tief. Innere Knoten haben einen Schlüssel und zwei Zeiger oder zwei Schlüssel und drei Zeiger. Suchen in einem 2-3-Baum: Bei einem Schlüssel wie im binären Suchbaum (Falls Suchwert = Schlüssel nach rechts gehen). Bei 2 Schlüsseln: 1. Zeiger: Werte < 1. Schlüssel, 2. Zeiger: Werte = 1. Schlüssel, kleiner 2. Schlüssel und 3. Zeiger: Werte = 2. Schlüssel. Einfügen: Suche den passenden inneren Knoten, an dem Blätter hängen. Füge dort den passenden neuen Schlüssel ein und hänge ein neues Blatt dazu. Falls der Knoten jetzt 3 Schlüssel hat, spalte den Knoten in drei Teile: der mittlere Schlüssel wandert im Baum nach oben (und erzeugt dort evtl. wieder ein Spalten), die beiden anderen Schlüssel werden neue innere Knoten (mit jeweils einem Schlüssel). Jeder dieser Knoten hat dann 2 Zeiger. Innere Knoten werden als Kasten gezeichnet, Blätter dagegen ohne Rahmen. Problemfall: nur ein Knoten vorhanden. Dann kann es keinen inneren Knoten geben, da ein solcher mindestens zwei Blätter hätte, aber nur ein Datum vorhanden ist. 8 9 9 10 8 9 8 9 10 8 9 10 9 -> 2 8 9 10 8 10 3

2 8 9 10 9 2 8 10 1 2 8 9 10 9 9 / \ -> 2 8 10 2 8 10 1 2 5 8 9 10 1 2 5 8 9 10 9 9 / \ / \ / \ 2 3 8 10 2 3 6 8 10 1 2 3 5 8 9 10 1 2 3 5 6 8 9 10 9 3 9 / \ -> -> 2 3 4 6 8 10 2 4 6 8 10 1 2 3 4 5 6 8 9 10 1 2 3 4 5 6 8 9 10 4

3 9 2 4 6 8 10 1 2 3 4 5 6 8 9 10 (b) Führen Sie folgende Operationen auf dem Baum aus, welcher in Teilaufgabe (a) erzeugt wurde. 1. Löschen Sie die 6. Lösung: Löschen: Suche das Blatt. Lösche es und den Schlüssel darüber. Hat dieser Knoten nun nur noch einen Sohn, prüfe, ob ein Bruder einen Sohn abgeben kann (falls dieser 3 hat). Ansonsten verschmelze Knoten mit einem Bruder und dem Schlüssel des Vaters zwischen den Brüdern. Dadurch verliert der Vater wieder einen Schlüssel (evtl. bis zur Wurzel => der Baum wird niedriger). Passe Schlüssel bis zur Wurzel an. Lösche die 6, der Vater hat immer noch zwei Söhne. 3 9 2 4 8 10 1 2 3 4 5 8 9 10 2. Löschen Sie die 5. Lösung: Lösche die 5 und den Schlüssel 6 darüber, der Knoten hat 5

noch 2 Söhne. Ändere den Schlüssel 5 an der Wurzel auf 6 (dies ist evtl. nicht notwendig, hängt von der konkreten Invariante ab. 3 9 2 4 8 10 1 2 3 4 6 8 9 10 3. Löschen Sie die 9. Lösung: Lösche 9. Vater hat nur noch den Sohn 10. Linker Bruder hat drei Söhne (5,6,8). Die 8 wandert zum betrachteten Knoten. Von der neuen Position der 8 nach oben müssen Schlüssel angepasst werden (je nach Invariante, siehe oben. 3 8 2 4 6 10 1 2 3 4 5 6 8 10 4. Löschen Sie die 1. Lösung: 6

3 9 2 4 6 8 10 2 3 4 5 6 8 9 10 Bruder kann keinen Sohn abgeben => verschmelze mit Bruder und Schlüssel des gemeinsamem Vaters zwischen den Werten:? 9 / \ 3 4 6 8 10 2 3 4 5 6 8 9 10 Vater hat nun einen Knoten zuwenig, wieder verschmelzen: 9 / \ 3 4 6 8 10 2 3 4 5 6 8 9 10 Geben Sie das Ergebnis jeder Löschoperation an. 7

Aufgabe 24 Minimaler Grad von B-Bäumen (a) Weshalb lassen wir für den minimalen Grad eines B-Baums t = 1 nicht zu? (b) Für welche Werte des minimalen Grades t ist der folgende Baum ein zulässiger B-Baum? (c) Zeichnen Sie alle zulässigen B-Bäume mit minimalen Grad 2, die die Menge {1, 2, 3, 4, 5} darstellen! Lösung: (a) Laut Denition müsste in Falle t = 1 jeder Knoten auÿer der Wurzel mindestens keine und höchstens einen Schlüssel enthalten. Damit hätten wir erstens die Möglichkeit leerer Knoten gegeben, was a) keinen Sinn macht und b) zu Problemen führt. Zweitens hätten wir im besten Fall einen Binärbaum deniert, den wir auch einfacher hätten denieren können. (b) Zulässige Werte von t sind 2 und 3. Im Fall t = 2 gilt, dass jeder Knoten auÿer der Wurzel mindestens t 1 = 1 Schlüssel enthalten muss und höchstens 2 t 1 = 3 Schlüssel enthalten darf. Dies ist im Baum oensichtlich erfüllt. Ebenso gilt dies für t = 3 mit mindestens 2 und höchstens 5 Schlüsseln pro Knoten. Ab t = 4 ist die Bedingung von mindestens t + 1 Schlüsseln nicht mehr von allen Knoten erfüllt. (c) 8

Aufgabe 25 B-Baum Maximale Anzahl von Schlüsseln im Wie groÿ ist die maximale Anzahl von Schlüsseln, die in einem B-Baum der Höhe h gespeichert werden kann. Geben Sie die Anzahl als Funktion des minimalen Grades t an. (Hier ist ein Beweis mittels Induktion gefordert.) Lösung: Behauptung: Maximale Anzahl der Schlüssel in einem B-Baum der Höhe h und mit minimalen Grad t ist maxkey t (h) = h (2t 1) (2t) i i=0 Beweis mit Induktion nach der Höhe des Baumes: Induktionsanfang h = 0: Ein Baum mit h = 0 besteht nur aus der Wurzel und hat damit maximal 2t 1 Schlüssel nach Denition. Dies ergibt auch die Formel maxkey t (0) = (2t 1) 1 = 2t 1 Induktionsschritt h h + 1 mit der Induktionsannahme maxkey t (h) = h i=0 (2t 1) (2t)i. Ein Baum der Höhe h hat maximal (2t) h Blätter (Behauptung ohne Beweis). Für einen Baum mit Höhe h + 1 gilt also dann, dass er die Anzahl der Schlüssel des Baums mit Höhe h hat + maximal (2t) h+1 (2t 1) neue Schlüssel (jedes neue Blatt hat maximale Anzahl Schlüssel). Also: Dies war zu zeigen. maxkey t (h + 1) = maxkey t (h) + (2t) h+1 (2t 1) ( h ) = (2t 1) (2t) i + (2t) h+1 (2t 1) i=0 h+1 = (2t 1) (2t) i i=0 9