14. Rot-Schwarz-Bäume

Größe: px
Ab Seite anzeigen:

Download "14. Rot-Schwarz-Bäume"

Transkript

1 Bislang: Wörterbuchoperationen bei binären Suchbäume effizient durchführbar, falls Höhe des Baums klein. Rot-Schwarz-Bäume spezielle Suchbäume. Rot-Schwarz-Baum mit n Knoten hat Höhe höchstens 2 log(n+1). Tree-Search, Tree-Minimum, können unverändert bleiben. Tree-Insert, Tree-Delete müssen erweitert werden, um Rot-Schwarz-Bäume zu erhalten. 1

2 Rot-Schwarz-Bäume - Überblick 1. Definition von Rot-Schwarz-Bäumen 2. Zeigen Rot-Schwarz-Baum mit n Knoten hat Höhe höchstens 2 log(n+1). 3. Definieren Rotationen, als wichtiges Hilfsmittel zur Erweiterung von Tree-Insert und Tree-Delete. 4. Beschreiben Erweiterungen von Tree-Insert (und Tree-Delete), so dass Rot-Schwarz-Bäume erhalten bleiben. 2

3 Rot-Schwarz-Bäume Definition (1) Rot-Schwarz-Bäume sind binäre Suchbäume mit zusätzlichem Feld color für jeden Knoten x. color ist entweder Rot oder Schwarz. Wenn ein Eltern oder ein Kind eines Knotens nicht vorhanden, dann wird entsprechendes Feld auf NIL gesetzt. NIL wird als Verweis auf spezielle, externe Knoten betrachtet. Diese Knoten speichern keine Schlüssel. Restliche Knoten sind interne Knoten. 3

4 Rot-Schwarz-Bäume Definition (2) Definition 14.1: Ein binärer Suchbaum heisst Rot- Schwarz-Baum, wenn folgende Bedingungen erfüllt sind: 1. Jeder Knoten ist entweder rot oder schwarz. 2. Die Wurzel ist schwarz. 3. Jedes Blatt (NIL-Knoten) ist schwarz. 4. Ist ein Knoten rot, so sind seine Kinder schwarz. 5. Für jeden Knoten x enthält jeder abwärts gerichteter Pfad zu einem Blatt die gleiche Anzahl von schwarzen Knoten. 4

5 Illustration von Rot-Schwarz-Bäumen NIL NIL NIL NIL NIL 4 NIL NIL 15 NIL NIL NIL NIL 5

6 Vereinfachung durch nil[t] Vereinfachung durch Ersetzen der NIL-Knoten durch ein zusätzliches Objekt nil[t]. Verweise zu NIL-Knoten ersetzt durch Verweise auf nil[t] nil[t] 6

7 Vereinfachte Darstellung Verzichten bei Darstellung von Rot-Schwarz-Bäumen auf nil[t] und auf Kanten zu nil[t]:

8 Höhe von Rot-Schwarz-Bäumen (2) Satz 14.2: Ein Rot-Schwarz-Baum mit n inneren Knoten hat höchstens Höhe 2 log(n+1). Korollar 14.3: Bei einem Rot-Schwarz-Baum mit n Knoten erfordern die Algorithmen Tree-Search Tree-Minimum, Tree-Maximum Tree-Successor, Tree-Predecessor Tree-Insert, Tree-Delete Zeit O(log(n)). 8

9 Erhaltung der Rot-Schwarz-Eigenschaft Nach Anwendung von Tree-Insert, Tree-Delete bei Rot-Schwarz-Baum ist Rot-Schwarz-Eigenschaft nicht notwendigerweise mehr erfüllt. Tree-Insert, Tree-Delete garantieren damit nicht, dass alle Wörterbuchoperationen effizient unterstützt werden. Dazu müssen Tree-Delete, Tree-Insert so erweitert werden, dass sie Rot-Schwarz-Eigenschaft erhalten. Erhaltung durch Umfärben von Knoten und Änderung von Verweisen. Letzteres durch Rotationen. 9

10 Illustration Rotationen Links-Rotation(T,x) x Rechts-Rotation(T,y) y α y x γ β γ α β 10

11 Algorithmus Left-Rotate Left 1 y 2 right 3 if 4 5 p 6 if left 12 p - Rotate( T,x) right[ x] [ x] left[ y] left[ y] nil[ T ] then p[ left[ y ] x [ y] p[ x] p[ x] = nil[ T ] then root[ T ] y else if x = left[ p[ x] ] then left[ p[ x ] else right[ p[ x ] [ y] x [ x] y y α y x β y Links- Rotation(T,x) γ α x β y γ

12 Illustration Left-Rotate x 2 y Left-Rotate(T,x) x y

13 Eigenschaften der Rotationen Lemma 14.4: Left-Rotate und Right-Rotate benötigen Zeit O(1). Lemma 14.5: Left-Rotate und Right-Rotate erhalten die Suchbaum-Eigenschaft. D.h. ist T ein Suchbaum und x ein Knoten in T, dann ist auch der Baum der nach Anwendung von Left-Rotate(T,x) entsteht ein Suchbaum, und analog für Right-Rotate. 13

14 Tree - Insert y nil x root while x Einfügen eines Elements ( T, z) [ T ] [ T ] nil[ T ] if key[ z] < key[ x] then x left[ x] else x right[ x] [ ] y y = nil[ T ] then root[ T ] z else if key[ z] < key[ y] then left[ y] z else right[ y] z [ z] nil[ T ] [ z] nil[ T ] [ z] RED p z if left right do y x color RB -Insert - Fixup( T,z) Änderungen zu Tree-Insert: 1. NIL ersetzt durch nil[t]. 2. Setzen von left[z],right[z] auf nil[t]. (Zeilen 14,15) 3. Färbung von z. (Zeile 16) 4. Aufruf von RB-Insert-Fixup. (Zeile 1) 14

15 Einfügen eines Elements - Illustration Nach Einfügen von Knoten mit Schlüssel 4:

16 Verletzungen der Rot-Schwarz-Eigenschaft nach Zeilen 1-16 von RB-Insert Rot-Schwarz-Eigenschaft: 1. Jeder Knoten ist entweder rot oder schwarz. 2. Die Wurzel ist schwarz. 3. Jedes Blatt (nil[t]) ist schwarz. 4. Ist ein Knoten rot, so sind seine Kinder schwarz. 5. Für jeden Knoten x enthält jeder Pfad zu einem Blatt die gleiche Anzahl von schwarzen Knoten. Rot-Schwarz-Eigenschaft nach RB-Insert: 1. Erfüllt. 2. Nicht erfüllt, wenn z Wurzel. 3. Erfüllt. 4. Nicht erfüllt, wenn Eltern von z bereits rot ist. 5. Erfüllt. 16

17 Algorithmus RB-Insert-Fixup RB -Insert - Fixup 1 while color color do if [ root[ T ] ( T,z) [ p[ z ] = RED p[ z] = left[ p[ p[ z ] y right[ p[ p[ z ] if color [ y] = RED then color [ p[ z ] color [ y ] color [ p[ p[ z ] z p[ p[ z ] else if z = right[ p[ z ] then z p[ z] then else BLACK color color [ p[ z ] [ p[ p[ z ] Right - Rotate BLACK BLACK Left - Rotate BLACK RED (wie then, nur mit left/right RED ( T,z) ( T,p[ p[ z ]) vertauscht) 1

18 Invariante für RB-Insert-Fixup Ziel: Nach Durchlauf von RB-Insert-Fixup soll T wieder ein Rot-Schwarz-Baum sein. Invariante für while-schleife: a. Knoten z ist rot. b. Ist p[z] die Wurzel, dann ist p[z] schwarz. c. Gibt es eine Verletzung der Rot-Eigenschaft, so ist Eigenschaft 2. und Eigenschaft 4. verletzt. Ist Eigenschaft 2. verletzt, dann nur weil z Wurzel und rot ist. Ist Eigenschaft 4. verletzt, dann nur weil z und p[z] rot sind. 18

19 Initialisierung der Invariante Starten mit Rot-Schwarz-Baum, in den Knoten z eingefügt wurde. a. Eingefügter Knoten z ist rot. b. Ist p[z] Wurzel, so war p[z] schwarz. RB-Insert ändert Farbe von p[z] nicht. c. Haben gesehen, dass 1., 3., 5., auch nach Tree-Insert gelten. Verletzung von 2. und 4. kann nur durch Knoten z herbeigeführt werden. 19

20 Verletzungen der Rot-Schwarz-Eigenschaft nach Zeilen 1-16 von RB-Insert Rot-Schwarz-Eigenschaft: 1. Jeder Knoten ist entweder rot oder schwarz. 2. Die Wurzel ist schwarz. 3. Jedes Blatt (nil[t]) ist schwarz. 4. Ist ein Knoten rot, so sind seine Kinder schwarz. 5. Für jeden Knoten x enthält jeder Pfad zu einem Blatt die gleiche Anzahl von schwarzen Knoten. Rot-Schwarz-Eigenschaft nach RB-Insert: 1. Erfüllt. 2. Nicht erfüllt, wenn z Wurzel. 3. Erfüllt. 4. Nicht erfüllt, wenn Eltern von z bereits rot ist. 5. Erfüllt. 20

21 Terminierung der Invariante Nach Invariante kann Rot-Schwarz-Eigenschaft nur bei 2. und 4. verletzt sein. Bei Terminierung ist p[z] schwarz. Da Verletzung von 4. nur bei p[z] und z auftreten kann, ist 4. erfüllt. Nur noch 2. kann verletzt sein. Zeile 16 stellt sicher, dass 2. erfüllt ist. Zeile 16 kann nicht zur Verletzung anderer Eigenschaften führen. Alle 5 Eigenschaften erfüllt, damit T nach Durchlauf von RB-Insert-Fixup wieder Rot-Schwarz-Baum. 21

22 Erhaltung der Invariante (1) Müssen bei Erhaltung 6 Fälle betrachten: 1) p[z] ist linkes Kind von p[p[z]] und Onkel y von z ist rot. 2) p[z] ist linkes Kind von p[p[z]] Onkel y von z ist schwarz und z ist rechtes Kind. 3) p[z] ist linkes Kind von p[p[z]] Onkel y von z ist schwarz und z ist linkes Kind. 4) p[z] ist rechtes Kind von p[p[z]] und Onkel y von z ist rot. 5) p[z] ist rechtes Kind von p[p[z]] Onkel y von z ist schwarz und z ist rechtes Kind. 6) p[z] ist rechtes Kind von p[p[z]] Onkel y von z ist schwarz und z ist linkes Kind. Fälle 1),2),3) symmetrisch zu Fällen 4),5),6). Deshalb nur 1),2),3). Wie auch schon in RB-Insert-Fixup. 22

23 Illustration Fall 1) und 2) Fall 1) y z 4 Fall 2) 2 1 z 14 y

24 Illustration Fall 3) Fall 3) z y

25 Algorithmus RB-Insert-Fixup RB -Insert - Fixup 1 while color color do if [ root[ T ] ( T,z) [ p[ z ] = RED p[ z] = left[ p[ p[ z ] y right[ p[ p[ z ] if color [ y] = RED then color [ p[ z ] color [ y] color [ p[ p[ z ] z p[ p[ z ] else if z = right[ p[ z ] then z p[ z] then else BLACK color color [ p[ z ] [ p[ p[ z ] Right - Rotate BLACK BLACK RED Left - Rotate BLACK RED (wie then, nur mit left/right ( T,z) ( T,p[ p[ z ]) vertauscht) Fall 1) Zeilen 5 8 Fall 2) Zeilen10- Fall 3) Zeilen

26 RB-Insert-Fixup in Fall 1) 5 then color 6 color color 8 z p [ p[ z ] [ y] [ p [ p [ z ] [ p[ z ] BLACK BLACK RED C C neues z A D y A D α B z δ ε α B δ ε β γ β γ Wurzeln der Teilbäume α,β,γ,δ,ε jeweils schwarz. 26

27 RB-Insert-Fixup in Fall 2) [ z] 10 z p Left - Rotate ( T,z) C C α A B z δ y z A B γ δ y β γ α β Wurzeln der Teilbäume α,β,γ,δ,ε jeweils schwarz. 2

28 RB-Insert-Fixup in Fall 3) [ p[ z ] BLACK [ p [ p [ z ] RED T,p[ p[ z ] color color Right - Rotate( ) C B z A B γ δ y α z A β γ C δ α β Wurzeln der Teilbäume α,β,γ,δ,ε jeweils schwarz. 28

29 Illustration von RB-Insert-Fixup 2 14 Fall 1) 2 14 y y z 8 15 z 4 4 Fall 2) Fall 3) 1 z z y

30 Laufzeitanalyse RB-Insert hat wie Tree-Insert Laufzeit proportional zur Höhe des Baumes. Bei einem Rot-Schwarz-Baum mit n Knoten also Laufzeit O(log(n)). Fälle 2) und 3) von RB-Insert-Fixup werden jeweils höchstens einmal ausgeführt. Nach 2) kommt immer 3) und in 3) wird die Verletzung von 4. beseitigt ohne neue Verletzungen einzuführen. In Fall 1) wird die Verletzung von Knoten z auf Knoten p[p[z]] übertragen. Damit kann Fall 1) höchstens O(log(n)) auftreten. Laufzeit von RB-Insert-Fixup somit O(log(n)). 30

31 Tree-Delete und Zusammenfassung Tree-Delete führt wie Tree-Insert zu Problemen: Nach Anwendung auf Rot-Schwarz-Baum sind Rot-Schwarz- Eigenschaften nicht mehr erfüllt. Erweiterung von Tree-Delete mit Hilfe von RB-Delete- Fixup. Zusammen Laufzeit O(log(n)) und erhalten Rot-Schwarz- Eigenschaften bei Entfernen von Knoten. Insgesamt können also durch Rot-Schwarz-Bäume alle Wörterbuchoperationen effizient nämlich in Zeit O(log(n)) unterstützt werden. 31

32 Alternativen zu Rot-Schwarz-Bäumen Neben Rot-Schwarz-Bäumen gibt es noch andere Varianten von Suchbäumen, die Wörterbücher effizient implementieren. Hierzu gehören u.a. 1. AVL-Bäume Bäume 3. Zufällige Suchbäume (randomized search trees (RST)) 4. B-Bäume (besonders gut für Sekundärspeicher geeignet) Als Alternative zu Hashing und Suchbäumen gibt es noch Skip-Listen. Diese sind Erweiterungen von verketteten Listen. 32

33 Zusammenfassung Datenstrukturen Dynamische Menge/abstrakten Datentypen sind Mengen mit Operationen, die effizient ausgeführt werden sollen, z.b. Wörterbücher, Warteschlangen,. Dabei kann die Menge durch Einfügen/Entfernen von Objekte geändert werden. Nützlich, wenn bestimmte Operationen immer wieder durchgeführt werden müssen, z.b. Maximumbestimmung bei Heap-Sort. Datenstrukturen als Implementierungen von dynamischen Mengen. 33

34 Geometrische Datenstrukturen Kennen gelernt: 1. Stacks, Queues, Listen 2. Hashing 3. Binäre Suchbäume, speziell Rot-Schwarz- Bäume Datenstrukturen werden häufig auch in geometrischen Anwendungen (Computer Graphik, Geographische Informationssysteme (GIS)) benutzt. Dynamische Menge S definiert durch Punkte in der Ebene und so genannte Bereichsabfragen. 34

35 Geometrische Datenstrukturen Bereichsabfragen: Gegeben ein geometrisches Objekt eines bestimmten Typs, sollen alle Elemente aus S berechnet werden, die im Objekt enthalten sind. Typen von Objekten können z.b. sein Halbebenen Kreise Rechtecke 35

36 Geometrische Datenstrukturen - Beispiel Kreisabfrage: 36

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

Mehr

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

Übersicht. Rot-schwarz Bäume. Rot-schwarz Bäume. Beispiel. Eigenschaften. Datenstrukturen & Algorithmen. Rot-schwarz Bäume Eigenschaften Einfügen Datenstrukturen & Algorithmen Übersicht Rot-schwarz Bäume Eigenschaften Einfügen Matthias Zwicker Universität Bern Frühling 2009 2 Rot-schwarz Bäume Binäre Suchbäume sind nur effizient wenn Höhe des Baumes

Mehr

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

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. 8. A & D - Heapsort Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. Genauer werden wir immer wieder benötigte Operationen durch Datenstrukturen unterstützen.

Mehr

Algorithmen und Datenstrukturen Kapitel 7 Dynamische Mengen, das Suchproblem &

Algorithmen und Datenstrukturen Kapitel 7 Dynamische Mengen, das Suchproblem & Grundlagen Algorithmen und Datenstrukturen Kapitel 7 Dynamische Mengen, das Suchproblem & Frank Heitmann [email protected] 25. November 2015 Frank Heitmann [email protected]

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Rot-schwarz Bäume Eigenschaften Rotationen Einfügen (Löschen) 2 Einführung Binäre Suchbäume Höhe h O(h) für Operationen

Mehr

Algorithmen und Datenstrukturen Kapitel 7 Dynamische Mengen, das Suchproblem &

Algorithmen und Datenstrukturen Kapitel 7 Dynamische Mengen, das Suchproblem & Algorithmen und Datenstrukturen Kapitel 7 Dynamische Mengen, das Suchproblem & Frank Heitmann [email protected] 25. November 2015 Frank Heitmann [email protected] 1/122

Mehr

VL-11: Rot-Schwarz Bäume. (Datenstrukturen und Algorithmen, SS 2017) Janosch Fuchs

VL-11: Rot-Schwarz Bäume. (Datenstrukturen und Algorithmen, SS 2017) Janosch Fuchs VL-11: Rot-Schwarz Bäume (Datenstrukturen und Algorithmen, SS 2017) Janosch Fuchs SS 2017, RWTH DSAL/SS 2017 VL-11: Rot-Schwarz Bäume 1/41 Organisatorisches Vorlesung: Gerhard Woeginger (Zimmer 4024 im

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)

Mehr

Algorithmen und Datenstrukturen Heapsort

Algorithmen und Datenstrukturen Heapsort Algorithmen und Datenstrukturen 2 5 Heapsort In diesem Kapitel wird Heapsort, ein weiterer Sortieralgorithmus, vorgestellt. Dieser besitzt wie MERGE-SORT eine Laufzeit von O(n log n), sortiert jedoch das

Mehr

Natürliche Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. Natürliche Bäume 1/16

Natürliche Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. Natürliche Bäume 1/16 Natürliche Bäume (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun Letzte Änderung: 18.03.2018 18:16 Natürliche Bäume 1/16 Bäume Begriffe (1/2) Bäume sind verallgemeinerte Listenstrukturen ein

Mehr

15. Elementare Graphalgorithmen

15. Elementare Graphalgorithmen Graphen sind eine der wichtigste Modellierungskonzepte der Informatik Graphalgorithmen bilden die Grundlage vieler Algorithmen in der Praxis Zunächst kurze Wiederholung von Graphen. Dann Darstellungen

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 10 (3.6.2014) Binäre Suchbäume I Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 2016/17 13. Vorlesung Binäre Suchbäume Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Dynamische Menge verwaltet Elemente einer sich ändernden Menge

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 - Balancierte Bäume, AVL-Bäume) Prof. Dr. Susanne Albers Balancierte Bäume Eine Klasse von binären Suchbäumen ist balanciert, wenn jede der drei

Mehr

9. Natürliche Suchbäume

9. Natürliche Suchbäume Bäume Bäume sind. Natürliche Suchbäume [Ottman/Widmayer, Kap..1, Cormen et al, Kap. 12.1-12.] Verallgemeinerte Listen: Knoten können mehrere Nachfolger haben Spezielle Graphen: Graphen bestehen aus Knoten

Mehr

Algorithmen und Datenstrukturen I Bruder-Bäume

Algorithmen und Datenstrukturen I Bruder-Bäume Algorithmen und Datenstrukturen I Bruder-Bäume Prof. Dr. Oliver Braun Letzte Änderung: 11.12.2017 10:50 Algorithmen und Datenstrukturen I, Bruder-Bäume 1/24 Definition ein binärer Baum heißt ein Bruder-Baum,

Mehr

Algorithmen und Datenstrukturen I AVL-Bäume

Algorithmen und Datenstrukturen I AVL-Bäume Algorithmen und Datenstrukturen I AVL-Bäume Prof. Dr. Oliver Braun Letzte Änderung: 01.12.2017 14:42 Algorithmen und Datenstrukturen I, AVL-Bäume 1/38 Balancierte Bäume in einem zufällig erzeugten Binärbaum

Mehr

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen Bäume sind verallgemeinerte Listen Datenstrukturen Teil 2 Bäume Jeder Knoten kann mehrere Nachfolger haben Sie sind weiter spezielle Graphen Graphen bestehen aus Knoten und Kanten Kanten können gerichtet

Mehr

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

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/2, Folie 1 2014 Prof. Steffen Lange - HDa/FbI

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14 Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 2. April

Mehr

Kapitel 9 Suchalgorithmen

Kapitel 9 Suchalgorithmen Kapitel 9 Suchalgorithmen Technische Universität München Suchverfahren: Verfahren, das in einem Suchraum nach Mustern oder Objekten mit bestimmten Eigenschaften sucht. Vielfältige Anwendungsbereiche für

Mehr

11. Elementare Datenstrukturen

11. Elementare Datenstrukturen 11. Elementare Datenstrukturen Definition 11.1: Eine dynamische Menge ist gegeben durch eine oder mehrer Mengen von Objekten sowie Operationen auf diesen Mengen und den Objekten der Mengen. Dynamische

Mehr

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

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 3. Binäre Suchbäume 3.1 Natürliche binäre Suchbäume Definition 18 Ein natürlicher binärer Suchbaum über einem durch total geordneten Universum U ist ein als interner Suchbaum organisierter Binärbaum (also:

Mehr

12. Hashing. Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete.

12. Hashing. Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete. Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete. Worst-case Zeit für Search: Θ(n). In der Praxis jedoch sehr gut. Unter gewissen

Mehr

Anwendungsbeispiel MinHeap

Anwendungsbeispiel MinHeap Anwendungsbeispiel MinHeap Uns seien n ganze Zahlen gegeben und wir möchten darin die k größten Zahlen bestimmen; zudem gelten, dass n deutlich größer als k ist Wir können das Problem mit Laufzeit in O(n

Mehr

elementare Datenstrukturen

elementare Datenstrukturen elementare Datenstrukturen Wie die Daten das Laufen lernten Andreas Ferber [email protected] elementare Datenstrukturen p./40 KISS elementare Datenstrukturen p./40 KISS (Keep It Simple, Stupid) Immer die einfachste

Mehr

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). 8. Untere Schranken für Sortieren Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). Werden nun gemeinsame Eigenschaften dieser Algorithmen untersuchen. Fassen gemeinsame

Mehr

a) Fügen Sie die Zahlen 39, 38, 37 und 36 in folgenden (2, 3)-Baum ein:

a) Fügen Sie die Zahlen 39, 38, 37 und 36 in folgenden (2, 3)-Baum ein: 1 Aufgabe 8.1 (P) (2, 3)-Baum a) Fügen Sie die Zahlen 39, 38, 37 und 36 in folgenden (2, 3)-Baum ein: Zeichnen Sie, was in jedem Schritt passiert. b) Löschen Sie die Zahlen 65, 70 und 100 aus folgendem

Mehr

Übung zur Vorlesung Algorithmische Geometrie

Übung zur Vorlesung Algorithmische Geometrie Übung zur Vorlesung Algorithmische Geometrie Dipl.-Math. Bastian Rieck Arbeitsgruppe Computergraphik und Visualisierung Interdisziplinäres Zentrum für Wissenschaftliches Rechnen 8. Mai 2012 B. Rieck (CoVis)

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum

Mehr

Datenstrukturen und Algorithmen Beispiellösung zu Heimübungsblatt 7. Abbildung 1: Das Array A als Baum (vgl. Foliensatz 16, Folie 3)

Datenstrukturen und Algorithmen Beispiellösung zu Heimübungsblatt 7. Abbildung 1: Das Array A als Baum (vgl. Foliensatz 16, Folie 3) Aufgabe 3 a) Wir verwenden zur Lösung den Algorithmus Build-Heap 1, dieser verwendet die Funktion Heapify. Unser Array A ist gegeben durch [7, 10,, 5, 5,, 3, 3, 17]. 10 5 5 3 17 7 Abbildung 1: Das Array

Mehr

Voronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Voronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 29.05.2011 Das Postamt-Problem b(p, q) = {x R 2 : xp = xq } p q h(p, q) h(q, p) = {x :

Mehr

Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen

Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen Algorithmen und Datenstrukturen 2 Dynamische Datenstrukturen Algorithmen für dynamische Datenstrukturen Zugriff auf Variable und Felder durch einen Ausdruck: Namen durch feste Adressen referenziert Anzahl

Mehr

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

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Binäre Suchbäume Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Mengen n Ziel: Aufrechterhalten einer Menge (hier: ganzer Zahlen) unter folgenden Operationen: Mengen n Ziel: Aufrechterhalten einer

Mehr

Suchbäume mit inneren Knoten verschiedener Knotengrade.

Suchbäume mit inneren Knoten verschiedener Knotengrade. Was bisher geschah rekursive Datenstrukturen: lineare Datenstrukturen: Liste, Stack, Queue hierarchische Datenstrukturen: Bäume allgemeine Bäume Binäre Bäume Unäre Bäume = Listen Tiefe eines Knotens in

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Sortierte Folgen Maike Buchin 30.5., 1.6., 13.6.2017 Sortierte Folgen Häufiges Szenario: in einer Menge von Objekten mit Schlüsseln (aus geordnetem Universum) sollen Elemente

Mehr

Mengen. Binäre Suchbäume. Mengen: Anwendungen (II) Mengen: Lösung mit Listen 12/3/12. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

Mengen. Binäre Suchbäume. Mengen: Anwendungen (II) Mengen: Lösung mit Listen 12/3/12. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps // Mengen Binäre Suchbäume Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps n Ziel: ufrechterhalten einer Menge (hier: ganzer Zahlen) unter folgenden Operationen: n eines Elements n eines Elements

Mehr

Doppelt verkettete Listen (1)

Doppelt verkettete Listen (1) Doppelt verkettete Listen (1) Verkettete Listen bestehen aus einer Menge linear angeordneter Objekte. Anordnung realisiert durch Verweise. Unterstützen Operationen Insert, Delete, Search, usw. (nicht unbedingt

Mehr

ContainerDatenstrukturen. Große Übung 4

ContainerDatenstrukturen. Große Übung 4 ContainerDatenstrukturen Große Übung 4 Aufgabenstellung Verwalte Kollektion S von n Objekten Grundaufgaben: Iterieren/Auflistung Suche nach Objekt x mit Wert/Schlüssel k Füge ein Objekt x hinzu Entferne

Mehr

Übung Algorithmen I

Übung Algorithmen I Übung Algorithmen I.6.5 Christoph Striecks [email protected] (Mit Folien von Julian Arz, Timo Bingmann und Sebastian Schlag.) Roadmap Hinweise zur Übungsklausur (Weitere) Traversierungen von Binärbäumen

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe

Mehr

Definition Ein Heap (priority queue) ist eine abstrakte Datenstruktur mit folgenden Kennzeichen:

Definition Ein Heap (priority queue) ist eine abstrakte Datenstruktur mit folgenden Kennzeichen: HeapSort Allgemeines Sortieralgorithmen gehören zu den am häufigsten angewendeten Algorithmen in der Datenverarbeitung. Man hatte daher bereits früh ein großes Interesse an der Entwicklung möglichst effizienter

Mehr

2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten.

2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. 2. Grundlagen Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. Laufzeitverhalten beschreiben durch O-Notation. 1 Beispiel Minimum-Suche Eingabe bei Minimum

Mehr

7. Dynamische Datenstrukturen Bäume. Informatik II für Verkehrsingenieure

7. Dynamische Datenstrukturen Bäume. Informatik II für Verkehrsingenieure 7. Dynamische Datenstrukturen Bäume Informatik II für Verkehrsingenieure Übersicht dynamische Datenstrukturen Wozu? Oft weiß man nicht von Beginn an, wieviele Elemente in einer Datenstruktur untergebracht

Mehr

Randomisierte Datenstrukturen

Randomisierte Datenstrukturen Seminar über Algorithmen DozentInnen: Helmut Alt, Claudia Klost Randomisierte Datenstrukturen Ralph Schäfermeier 13. 2. 2007 Das Verwalten von Mengen, so dass ein schneller Zugriff auf deren Elemente gewährleistet

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 Bäume: Grundlagen und natürliche Suchbäume) Prof. Dr. Susanne Albers Bäume (1) Bäume sind verallgemeinerte Listen (jedes Knoten-Element kann mehr

Mehr

Abgabe: (vor der Vorlesung) Aufgabe 7.1 (P) Binomial Heap

Abgabe: (vor der Vorlesung) Aufgabe 7.1 (P) Binomial Heap TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 7 Prof. Dr. Helmut Seidl, S. Pott,

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 216 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda Vorstellung des 6. Übungsblatts. Hashing Binäre Suchbäume AVL-Bäume 2 Aufgabe: Hashing mit

Mehr

4.1 Bäume, Datenstrukturen und Algorithmen. Zunächst führen wir Graphen ein. Die einfachste Vorstellung ist, dass ein Graph gegeben ist als

4.1 Bäume, Datenstrukturen und Algorithmen. Zunächst führen wir Graphen ein. Die einfachste Vorstellung ist, dass ein Graph gegeben ist als Kapitel 4 Bäume 4.1 Bäume, Datenstrukturen und Algorithmen Zunächst führen wir Graphen ein. Die einfachste Vorstellung ist, dass ein Graph gegeben ist als eine Menge von Knoten und eine Menge von zugehörigen

Mehr

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

Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6 Robert Elsässer u.v.a. Paderborn, 29. Mai 2008 Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6 Aufgabe 1 (6 Punkte): Zunächst sollte klar sein, daß ein vollständiger Binärer

Mehr

13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n)

13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n) AVL-Bäume: Ausgabe aller Elemente in O(n) Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n) Frage: Kann man Einfügen, Löschen und Suchen in O(1) Zeit? 1 Hashing einfache Methode

Mehr

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

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter

Mehr

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Suchen. Lineare Suche. Such-Algorithmen. Sommersemester Dr.

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Suchen. Lineare Suche. Such-Algorithmen. Sommersemester Dr. Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 0 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Fortgeschrittene Datenstrukturen Such-Algorithmen

Mehr

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Motivation. Vorlesung 10: Binäre Suchbäume

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Motivation. Vorlesung 10: Binäre Suchbäume Übersicht Datenstrukturen und lgorithmen Vorlesung : Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-/dsal/ 1 Suche Einfügen

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Kürzeste Wege, Heaps, Hashing Heute: Kürzeste Wege: Dijkstra Heaps: Binäre Min-Heaps Hashing:

Mehr

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit Counting-Sort Counting - Sort ( A,B,k ). for i to k. do C[ i]. for j to length[ A]. do C[ A[ j ] C[ A[ j ] +. > C[ i] enthält Anzahl der Elemente in 6. for i to k. do C[ i] C[ i] + C[ i ]. > C[ i] enthält

Mehr

Copyright, Page 1 of 8 AVL-Baum

Copyright, Page 1 of 8 AVL-Baum www.mathematik-netz.de Copyright, Page 1 of 8 AVL-Baum 1. Motivation und Einleitung Das Suchen, Einfügen und entfernen eines Schlüssels in einem zufällige erzeugten binären Suchbaum mit N Schlüsseln ist

Mehr

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss. (a, b)-bäume / 1. Szenario: Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss. Konsequenz: Kommunikation zwischen Hauptspeicher und Festplatte - geschieht nicht Byte für Byte,

Mehr