Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2017/18. Pro f. Dr. Sán do r Fe k e te

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

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

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

Datenstrukturen & Algorithmen

ContainerDatenstrukturen. Große Übung 4

Wiederholung. Datenstrukturen und. Bäume. Wiederholung. Suchen in linearen Feldern VO

Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen

Datenstrukturen und Algorithmen

Algorithmen und Datenstrukturen

Rotation. y T 3. Abbildung 3.10: Rotation nach rechts (analog links) Doppelrotation y

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

Algorithmen und Datenstrukturen I Bruder-Bäume

13. Binäre Suchbäume

Informatik II, SS 2014

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Technische Universität München. Vorlesungsgrobstruktur: wo stehen wir, wie geht s weiter

Algorithmen und Datenstrukturen I AVL-Bäume

Algorithmen und Datenstrukturen Suchbaum

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Informatik II, SS 2016

Kapitel Andere dynamische Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

WS 2013/14. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen

Algorithmen und Datenstrukturen

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

Algorithmen und Datenstrukturen Heapsort

Algorithmen und Datenstrukturen Balancierte Suchbäume

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

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

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Dynamische Mengen. Realisierungen durch Bäume

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

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

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

Übung zur Vorlesung Algorithmische Geometrie

Datenstrukturen und Algorithmen

Wiederholung. Bäume sind zyklenfrei. Rekursive Definition: Baum = Wurzelknoten + disjunkte Menge von Kindbäumen.

Was bisher geschah. 1. Zerlegung in monotone Polygone 2. Triangulierung der monotonen Teilpolygone

Kapitel 9 Suchalgorithmen

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

7 Weitere Baumstrukturen und Heapstrukturen

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

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

11.1 Grundlagen - Denitionen

Pro Informatik 2009: Objektorientierte Programmierung Tag 18. Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik

t-äre Bäume können - wie Binärbäume - degenerieren, d.h. durch ungünstige Einfügereihenfolge kann ein unausgewogener Baum mit großer Höhe entstehen.

Tutorium Algorithmen & Datenstrukturen

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

Algorithmen und Datenstrukturen

Kurs 1663 Datenstrukturen" Musterlösungen zur Klausur vom Seite 1. Musterlösungen zur Hauptklausur Kurs 1663 Datenstrukturen 15.

Abschnitt 18: Effizientes Suchen in Mengen

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

Verkettete Datenstrukturen: Bäume

Informatik II, SS 2014

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

11. Elementare Datenstrukturen

Informatik II, SS 2014

Datenstrukturen & Algorithmen Lösungen zu Blatt 4 FS 15

Suchbäume mit inneren Knoten verschiedener Knotengrade.

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

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

Algorithmen und Datenstrukturen 1-5. Seminar -

Vorlesung Datenstrukturen

Logische Datenstrukturen

Graphen und Bäume. A.1 Graphen

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

Kap. 4.2: Binäre Suchbäume

Kap. 4.2 Binäre Suchbäume ff Kap. 4.3: AVL-Bäume

Datenstrukturen. einfach verkettete Liste

Motivation Binäre Suchbäume

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

Algorithmen und Datenstrukturen

Suchen in linearen Feldern. Datenstrukturen & Algorithmen. Laufzeitverhalten der Suchverfahren. Anzahl der Vergleiche für 10 9 Elemente

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1

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

Fibonacci-Heaps und deren Anwendung

5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS)

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

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

14. Rot-Schwarz-Bäume

Algorithmen und Datenstrukturen Kapitel 7 Dynamische Mengen, das Suchproblem &

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

Übung: Algorithmen und Datenstrukturen SS 2007

Übung Algorithmen und Datenstrukturen

Relationen und DAGs, starker Zusammenhang

Bäume. Text. Prof. Dr. Margarita Esponda SS 2012 O4 O5 O6 O ALP2-Vorlesung, M. Esponda

Kapiteltests zum Leitprogramm Binäre Suchbäume

Teil 1: Suchen. Ausgeglichene Bäume B-Bäume Digitale Suchbäume. M.O.Franz, Oktober 2007 Algorithmen und Datenstrukturen - Binärbäume 1-1

Algorithmen und Datenstrukturen 1

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

Grundlagen der Programmierung 2. Bäume

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

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

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:

Informatik I 2. Kapitel. Elementare Datenstrukturen. Datenstrukturen. Datenstrukturen. Rainer Schrader. 28. Mai 2008

Beweis: Die obere Schranke ist klar, da ein Binärbaum der Höhe h höchstens

Transkript:

Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2017/18 Pro f. Dr. Sán do r Fe k e te 1

Binärer Suchbaum Außerdem wichtig: Struktur der Schlüsselwerte! 2

Ordnungsstruktur Linker Teilbaum: Kleinere (bzw. nicht größere) Zahlen Rechter Teilbaum: Größere Zahlen 3

4.5 Binäre Suchbäume Definition 4.3 (1) Ein gerichteter Graph D=(V,A) besteht aus einer endlichen Menge V von Knoten v und einer endlichen Menge von gerichteten Kanten, a=(v,w). (v ist Vorgänger von w.) (2) Ein gerichteter Baum B=(V,T) hat folgende Eigenschaften: (i) Es gibt einen eindeutigen Knoten w ohne Vorgänger. (ii) Jeder Knoten außer w ist auf einem eindeutigen Weg von w aus erreichbar; das heißt insbesondere, dass v einen eindeutigen Vorgänger (Vaterknoten) hat. (3) Die Höhe eines gerichteten Baumes ist die maximale Länge eines gerichteten Weges von der Wurzel. (4) Ein binärer Baum ist ein gerichteter Baum, in dem jeder Knoten höchstens zwei Nachfolger ( Kindknoten ) hat. Einer ist der linke l[v], der andere der rechte, r[v]. v w 4

4.5 Binäre Suchbäume Definition 4.3 (Forts.) (5) Ein binärer Baum heißt voll, wenn jeder Knoten zwei oder keinen Kindknoten hat. (6) Ein binärer Baum heißt vollständig, wenn zusätzlich alle Blätter gleichen Abstand zur Wurzel haben. (7) Ein Knoten ohne Kindknoten heißt Blatt. (8) Der Teilbaum eines Knotens v ist durch die Menge der von v erreichbaren Knoten und der dabei verwendeten Kanten definiert; der linke Teilbaum ist der Teilbaum von l[v]. (9) In einem binären Suchbaum hat jeder Knoten v einen Schlüsselwert S[v],und es gilt: - S[u] S[v] für Knoten u im linken Teilbaum von v - S[u]>S[v] für Knoten u im rechten Teilbaum von v Dieser Baum ist vollständig; wenn z.b. die Knoten 112 und 114 fehlen, dann ist er voll, aber nicht vollständig. 5

4.1 Grundoperationen MINIMUM(S): Suche das Minimum in S Finde in S ein Element von kleinstem Wert. (Annahme: Die Werte lassen sich vollständig vergleichen!) Ausgabe: Zeiger x auf solch ein Element 6

4.1 Grundoperationen MAXIMUM(S): Suche das Maximum in S Finde in S ein Element von größtem Wert. (Annahme: Die Werte lassen sich vollständig vergleichen!) Ausgabe: Zeiger x auf solch ein Element 7

Minimum und Maximum 8

4.1 Grundoperationen SEARCH(S,k): Suche in S nach k Durchsuche die Menge S nach einem Element von Wert k. Ausgabe: Zeiger x, falls x existent NIL, falls kein Element Wert k hat. 9

Suche im Suchbaum 10

4.1 Grundoperationen SUCCESSOR(S,x): Finde das nächstgrößere Element Für ein in x stehendes Element in S, bestimme ein Element von nächstgrößerem Wert in S. Ausgabe: Zeiger y auf Element NIL, falls x Maximum von S angibt 11

Nachfolger im Suchbaum 12

4.4 Binäre Suche Satz 4.4 Suchen, Minimum, Maximum, Nachfolger, Vorgänger können in einem binären Suchbaum der Höhe h in Zeit O(h) durchlaufen werden. Beweis: Klar, der Baum wird nur einmal vertikal durchlaufen! 13

4.1 Grundoperationen INSERT(S,x): Füge x in S ein Erweitere S um das Element, das unter der Adresse x steht. 14

Einfügen im Suchbaum Füge 13 ein! 15

Einfügen im Suchbaum Füge 13 ein! 15

Einfügen im Suchbaum 16

4.5 Binäre Suchbäume Satz 4.5 Einfügen benötigt O(h) für einen binären Suchbaum der Höhe h. Beweis: Klar, der Baum wird nur vertikal abwärts durchlaufen! 17

4.1 Grundoperationen DELETE(S,x): Entferne x aus S Lösche das unter der Adresse x stehende Element aus der Menge S. 18

Löschen im Suchbaum Lösche 13! (a) Keine Kinder: 19

Löschen im Suchbaum Lösche 13! (a) Keine Kinder: Einfach entfernen 19

Löschen im Suchbaum Lösche 16! (b) Ein Kind: 20

Löschen im Suchbaum Lösche 16! (b) Ein Kind: Ausschneiden 20

Löschen im Suchbaum Lösche 5! 21

Löschen im Suchbaum Lösche 5! (c) Zwei Kinder: Nachfolger verpflanzen 21

Löschen im Suchbaum 22

4.5 Binäre Suchbäume Satz 4.6 Löschen benötigt O(h) für einen binären Suchbaum der Höhe h. Beweis: Klar, der Baum wird i.w. nur einmal durchlaufen! 23

4.1 Grundoperationen Langsam: lineare Zeit O(n): Alle Objekte anschauen Sehr schnell: konstante Zeit O(1): Immer gleich schnell, egal wie groß S ist. Schnell: O(log n): logarithmische Zeit Wiederholtes Halbieren 24

4.5 Binäre Suchbäume Schnell: O(log n): logarithmische Zeit Tiefe des Baumes O(h): Also: Wie können wir die Tiefe des Baumes auf O(log n) beschränken? 25

4.5 Binäre Suchbäume 26

Mehr demnächst! s.fekete@tu-bs.de 27