Datenstrukturen und Algorithmen (SS 2013)

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

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

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

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

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Balancierte Suchbäume

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

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

Informatik II, SS 2014

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

Übung Algorithmen I

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

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

Übung zur Vorlesung Algorithmische Geometrie

Tutoraufgabe 1 (2 3 4 Bäume):

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

Klausur Algorithmen und Datenstrukturen

Dynamische Mengen. Realisierungen durch Bäume

Copyright, Page 1 of 8 AVL-Baum

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

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

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

Balancierte Suchbäume

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

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

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:

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

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

Programmiertechnik II

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

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

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

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

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

Teil 1: Suchen. Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume Ausgeglichene Bäume. B-Bäume Digitale Suchbäume Heaps

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Informatik II, SS 2014

Tutoraufgabe 1 (2 3 4 Bäume):

Datenstrukturen & Algorithmen

Anmerkungen zur Übergangsprüfung

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.

Suchbäume mit inneren Knoten verschiedener Knotengrade.

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Kapiteltests zum Leitprogramm Binäre Suchbäume

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

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Kapitel 7 Dynamische Mengen, das Suchproblem &

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

Datenstrukturen und Algorithmen

Abschnitt 18: Effizientes Suchen in Mengen

KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN

Verkettete Datenstrukturen: Bäume

Suchen und Sortieren

Binärbäume: Beispiel

Eulerweg, Eulerkreis. Das Königsberger Brückenproblem. Definition 3.1. Ein Weg, der jede Kante von G genau einmal

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

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

Algorithmen und Datenstrukturen

Kap. 4.2: Binäre Suchbäume

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Kapitel 1: Motivation / Grundlagen Gliederung

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

Technische Universität München Zentrum Mathematik Propädeutikum Diskrete Mathematik. Weihnachtsblatt

Vorlesung Datenstrukturen

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

Ludwig-Maximilians-Universität München SoSe 2009 Institut für Informatik PD Dr. Martin Lange Dipl.-Inf. Markus Latte 25. Juni 2009

Datenstrukturen & Algorithmen

Algorithmen und Datenstrukturen VO 3.0 Vorlesungsprüfung 19. Oktober 2007

Datenstrukturen & Algorithmen Lösungen zu Blatt 5 FS 14

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

Nachtrag zu binären Suchbäumen

DATENSTRUKTUREN UND ZAHLENSYSTEME

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph.

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

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 )

DAP2-Klausur

Bäume Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1

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

Berechnung von Hashwerten

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

7. Übung Algorithmen I

Bäume und Wälder. Seminar: Graphentheorie Sommersemester 2015 Dozent: Dr. Thomas Timmermann

Grundlagen der Programmierung 2. Bäume

Mathematische Grundlagen der Ökonomie Übungsblatt 8

1. Aufgabe (6 Punkte): Java-Programmierung (Arrays)

Tutorium Algorithmen & Datenstrukturen

Informatik II, SS 2014

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

13. Bäume: effektives Suchen und Sortieren

Klausur Informatik B. Teil 1: Informatik 3 Juli 2005

Mathematik und Logik

7. Sortieren Lernziele. 7. Sortieren

Matchings (Paarungen) in Graphen. PS Algorithmen auf Graphen SS `06 Steven Birr

ADS: Algorithmen und Datenstrukturen 2

Ersetzbarkeitstheorem

Binäre Bäume Darstellung und Traversierung

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:

13. Binäre Suchbäume

Kapitel 9 Suchalgorithmen

Algorithmen und Datenstrukturen 1 VL Übungstest WS 2010/ November 2010

Transkript:

Datenstrukturen und Algorithmen (SS 20) Übungsblatt 8 Abgabe: Montag, 24.06.20, 14:00 Uhr Die Übungen sollen in Gruppen von zwei bis drei Personen bearbeitet werden. Schreiben Sie die Namen jedes Gruppenmitglieds sowie alle Matrikelnummern auf die abgegebenen Lösungen. Schreiben Sie die Namen jedes Gruppenmitglieds sowie alle Matrikelnummern auch in die Quellcode-Dateien. Geben Sie Ihre Lösungen am Anfang der Globalübung, montags, 14:00 Uhr, ab. Schicken Sie den jeweiligen Quellcode bitte per E-Mail direkt an Ihre/n Tutor/in. Geben Sie außerdem den ausgedruckten Quellcode zusammen mit den schriftlichen Lösungen ab. Zu spät abgegebene Lösungen werden nicht bewertet. Sofern nicht anders gefordert, müssen alle Lösungen und Zwischenschritte kommentiert werden.

Aufgabe 1 (AVL-Bäume [10 Punkte]) Der Balancegrad balance(v) eines Knotens im Suchbaums v entspricht der Höhendifferenz seiner beiden Teilbäume w 1 und w 2 : balance(v) = height(subtree(w 1 )) height(subtree(w 2 )). In einem AVL-Baum wird ein Knoten v als kritisch bezeichnet, wenn er unbalanciert ist, d.h. sobald balance(v) / { 1, 0, 1}. Immer wenn ein solcher Zustand erreicht worden ist, muss der kritische Knoten rotiert werden, um die Balanceeigenschaft wieder herzustellen. (a) Geben sie alle möglichen unkritischen AVL-Bäume für folgende Knoten an [2 Punkte]: 4, 5, 7,, (b) Fügen Sie in einen leeren AVL-Baum die folgenden Zahlen in der gegebenen Reihenfolge ein: 5,,, 21, 10, 12, 1 Zeichnen Sie den AVL-Baum jeweils vor und nach jeder Rotation. Markieren Sie zusätzlich vor der Rotation den kritischen Knoten, sowie den zuletzt eingefügten Knoten. Geben Sie bei Doppelrotationen auch den Zwischenzustand des Baumes an. [4 Punkte] (c) Geben Sie maximal vier Rotationen an, die den folgenden Baum der Höhe fünf in einen Baum der Höhe drei transformieren. Geben Sie auch den Zustand des Baumes nach jeder Rotation an. [4 Punkte] 2 20 1 7 24 10 12

Lösungsvorschlag (a) 5 7 7 4 7 4 5 4 5 7 7 5 5 5 4 4 4 7 (b) 5 Balance=2 =2-0 Linksrotation bzgl. krit. Knoten 5, Einfügen von 21, 10 5 21 Balance=-2=0-2 5 Balance=2=3-1 10 21 12 Rechtsrotation bzgl. krit. Knoten, Einfügen von 12 10 Doppelrotation bzgl. krit. Knoten : erst Rechtsrotation bzgl. 21, dann Linksrotation bzgl. 5 10 12 21 10 10 21 Einfügen von 1 21 5 12 5 12 1

(c) Wir können den gegebenen Baum mit vier Rotationen in einen Baum der Höhe drei transformieren. Hierzu führen wir zuerst eine Linksrotation auf den Knoten aus und anschließend eine Rechtsrotation auf den Knoten. Durch diese beiden Rotationen erhalten wir einen Baum der Höhe vier: Ursprünglicher Baum: Linksrotation auf Knoten : Rechtsrotation auf Knoten 2 20 2 20 2 20 1 7 24 1 7 24 1 7 24 10 10 12 12 10 12 Auf diesen Baum führen wir nun noch eine Rechtsrotation auf den Knoten 20 durch, gefolgt von einer Linksrotation um die Wurzel und erhalten so einen Baum der Höhe drei: Baum der Höhe vier: Rechtsrotation auf Knoten 20: Linksrotation auf Wurzel: 2 20 2 20 1 7 24 1 7 20 2 24 10 12 24 1 7 10 12 10 12 Aufgabe 2 (Rot-Schwarz-Bäume [10 Punkte]) (a) Fügen Sie die folgenden Werte in der angegebenen Reihenfolge in einen anfangs leeren Rot-Schwarz-Baum ein. Geben Sie den entstandenen Rot-Schwarz- Baum nach jeder Knotenerzeugung, Umfärbung und Rotation an (mehrere Umfärbungen innerhalb eines Falles dürfen in einem Schritt vorgenommen werden). [3 Punkte] 42,,,,, 6,

(b) Löschen Sie nun aus dem in Aufgabenteil a) entstandenen Rot-Schwarz-Baum die folgenden Werte in der angegebenen Reihenfolge. Geben Sie den entstandenen Rot-Schwarz-Baum nach jeder Knotenlöschung, Markierungsverschiebung, Umfärbung und Rotation an (mehrere Umfärbungen innerhalb eines Falles dürfen in einem Schritt vorgenommen werden). [3 Punkte],, 42, 6 (c) Zeigen Sie, dass zu jeder Höhe h ein Rot-Schwarz-Baum B(h) existiert mit der folgenden Anzahl roter Knoten r(b(h)) [4 Punkte]: r(b(h)) = h ( (1 + ( 1) i h ) 2 i 2) Lösungsvorschlag (a) 42 42 42 42

42 42 42 42 42

42 42 42 42

42 42 6 42 6

42 6 6 6 (b)

6 6 6 6

6 6 42 6 6

6

(c) Wir konstruieren einen entsprechenden Baum mit Höhe h induktiv und zeigen, dass die Eigenschaft für jede Höhe erfüllt ist: Induktionsanfang: Alle Bäume mit Höhe h < 2 bestehen nur aus Wurzel und Blättern. Nach Definition besitzen sie somit nur schwarze Knoten. Der Summenindex i startet bei 2 und läuft bis h. Somit ergibt sich bei allen Höhen h < 2 die Summe 0 und die Aussage ist für h < 2 gezeigt. Induktionshypothese: Die Aussage gelte für alle Höhen h mit 0 h < h, wobei h beliebig, aber fest ist. Induktionsschritt: Wir unterscheiden zwischen gerader und ungerader Höhe h: 1. Fall: h ist ungerade. Konstruiere B(h) wie folgt: B(h-1) B(h-1) Für den so konstruierten Baum B(h) gilt für die Anzahl der roten Knoten r(b(h)):

r(b(h)) =2 r(b(h 1)) Induktionshypothese h 1 ( =2 (1 + ( 1) i (h 1) ) 2 i 2) h 1 ( = (1 + ( 1) i h+1) ) 2 i 1) Indexverschiebung = = h ( (1 + ( 1) i h ) 2 i 2) h ungerade (1 + ( 1) 2 h ) = 0 i=3 h ( (1 + ( 1) i h ) 2 i 2) 2. Fall: h ist gerade. Konstruiere B(h) wie folgt: B(h-2) B(h-2) B(h-2) B(h-2) Für den so konstruierten Baum B(h) gilt für die Anzahl der roten Knoten r(b(h)):

r(b(h)) =2 + 4 r(b(h 2)) Induktionshypothese h 2 ( =2 + 4 (1 + ( 1) i (h 2) ) 2 i 2) h 2 ( =2 + (1 + ( 1) i h+2 ) 2 i) Indexverschiebung =2 + =2 + = h ( (1 + ( 1) i h ) 2 i 2) h gerade i=4 (1 + ( 1) 3 h ) = 0 (1 + ( 1) 2 h ) = 2 h ( (1 + ( 1) i h ) 2 i 2) 2 2 2 2 h ( (1 + ( 1) i h ) 2 i 2)