Suchbäume. Suchbäume. Einfügen in Binären Suchbäumen. Suchen in Binären Suchbäumen. Prinzip Suchbaum. Algorithmen und Datenstrukturen

Größe: px
Ab Seite anzeigen:

Download "Suchbäume. Suchbäume. Einfügen in Binären Suchbäumen. Suchen in Binären Suchbäumen. Prinzip Suchbaum. Algorithmen und Datenstrukturen"

Transkript

1 Suchbäume Suchbäume Prinzip Suchbaum Der Wert eines Knotens wird als Schlüssel verstanden Knoten kann auch weitere Daten enthalten, die aber hier nicht weiter betrachtet werden Werte der Schlüssel müssen vergleichbar sein Ein Schlüssel kommt höchstens einmal im Suchbaum vor Der Aufbau des Baumes spiegelt die Reihenfolge der Schlüssel wieder Binärer Suchbaum Ein Binärbaum, bei dem der Schlüssel eines jeden Knotens größer ist als alle Schlüssel in seinem linken Teilbaum kleiner ist als alle Schlüssel in seinem rechten Teilbaum Satz: Die Inorder-Traversierung eines binären Suchbaums liefert die Schlüssel in aufsteigender Reihenfolge sortiert Suchen in Binären Suchbäumen Einfügen in Binären Suchbäumen Suchen eines Knotens mit Schlüssel k Beginne mit der Wurzel Vergleiche k mit dem Schlüssel des betrachteten Knotens Sind die Werte gleich, hat man den Knoten gefunden Ist k kleiner, setze die Suche mit dem linken Kindknoten fort Ist k größer, setze die Suche mit dem rechten Kindknoten fort Existiert der entsprechende Kindknoten nicht, so kann der Schlüssel nicht im Baum enthalten sein Einfügen eines Knotens mit Schlüssel k Gehe zunächst vor wie bei der Suche Wird ein Knoten mit diesem Schlüssel gefunden ist kein Einfügen mehr nötig Sonst: Füge den neuen Knoten als Kind des letzten Knotens, der beim Suchen betrachtet wurde, ein Knoten wird genau an der Position eingefügt, an der der Suchalgorithmus keinen Kindknoten mehr gefunden hat Beachte: Ein Knoten wird immer als Blatt eingefügt

2 Minimum in Binären Suchbäumen Nachfolger in Binären Suchbäumen Suche des Knotens mit minimalem Schlüsselwert Beginne mit der Wurzel Gehe jeweils zum linken Kindknoten, bis kein linkes Kind mehr existiert Der Wert des letzen betrachteten Knotens ist ist das Minimum Maximum analog mit Durchlaufen der rechten Kinder Nachfolger: Knoten mit dem nächst höheren Wert im Baum Suche des des Nachfolgers eines Knotens v Fall1: v hat ein rechtes Kind Dann ist der gesuchte Knoten der Knoten mit minimalem Wert im rechten Teilbaum von v Fall 2: v hat kein rechtes Kind Dann ist der gesuchte Knoten der erste Vorfahr, bei dem v im linken Teilbaum liegt Falls es diesen nicht gibt, so existiert kein Nachfolger Vorgänger analog Löschen in Binären Suchbäumen Aufwand der Operationen Unterscheidung von drei Fällen beim Löschen von Knoten v Fall 1: v ist Blatt Dann kann v direkt gelöscht werden Fall 2: v hat genau ein Kind Dann wird v durch dieses Kind ersetzt Fall 3: v hat zwei Kinder Dann wird v durch seinen Nachfolger ersetzt Auf den Nachfolger trifft einer der ersten beiden Fälle zu Aufwand der betrachteten Operationen auf binären Suchbäumen ist jeweils maximal O(h), wenn h die Höhe des Baumes ist Die Höhe h ist im günstigsten Fall O(log n) und im ungünstigsten Fall O(n) Satz: Die erwartete Höhe eines binären Suchbaums nach Einfügen von n Knoten mit zufällig gewählten Werten liegt in O(log n) Problem: Knoten werden oft nicht zufällig eingefügt. Dann kann der Baum leicht zu einer listenartigen Struktur entarten

3 Balancierte Bäume Einführung AVL-Bäume (1) Die Höhe eines k-nären Baumes ist minimal, wenn er bis auf die unterste Ebene maximal gefüllt ist Einen solchen Baum bezeichnet man als ausgeglichen oder balanciert Für einen ausgeglichenen k-nären Baum gilt: Höhe des Baumes = log k (Anzahl Knoten) Entwickelt von den russischen Mathematikern Adelson- Velskii und Landis AVL-Bäume sind binäre Suchbäume, die das AVL-Kriterium erfüllen AVL-Kriterium: Für jeden Knoten ist der Betrag der Differenz der Höhen des rechten und linken Teilbaums maximal 1 AVL-Bäume realisieren eine abgeschwächte Form der Ausgeglichenheit Für AVL-Bäume gilt: Die Höhe eines AVL-Baums mit n Knoten ist in O(log n) Einführung AVL-Bäume (2) Einfügen in AVL-Bäume Formale Definition des AVL-Kriteriums: Die Funktion balance(v) für einen Knoten v sei definiert als balance(v) = Höhe rechter Teilbaum Höhe linker Teilbaum Die Höhe eine leeren Teilbaums wird dabei als -1 angenommen Dann bedeutet das AVL-Kriterium: Für jeden Knoten v gilt: balance(v) {-1, 0, 1} Zunächst Einfügen eines Knoten wie bei normalen Binärbäumen Dadurch kann die AVL-Eigenschaft für manche Knoten verletzt sein Nach einem Einfügen gilt für jeden Knoten v: balance(v) {-2, -1, 0, 1, 2} Um die AVL-Eigenschaft wieder herzustellen, wird der Baum anschließend umgebaut

4 Restrukturierung nach Einfügen Funktion restructure(x) Sei w der neu eingefügte Knoten Alle Knoten, deren Höhe sich geändert hat, liegen auf dem Pfad zwischen Wurzel und w Finden der Position zur Restrukturierung gehe von w aufwärts Richtung Wurzel z sei der erste Knoten, der unbalanciert ist (Verletzung AVL- Bedingung) existiert kein solcher Knoten, ist auch der neue Baum ein AVL-Baum y sei das Kind von z mit der größeren Höhe von beiden Kindern x sei das Kind von y mit der größeren Höhe von beiden Kindern Wende auf x die Funktion restructure(x) an restructure(x) Nenne die Knoten x, y, z nach ihrer (Inorder-) Reihenfolge a, b und c Nenne die 4 Teilbäume von x, y und z, die nicht x, y oder z als Wurzel haben nach ihrer (Inorder-) Reihenfolge T 0, T 1, T 2 und T 3 Ersetze z durch b Mache a zum linken Kind von b und T 0 und T 1 zum linken bzw. rechten Teilbaum von a Mache c zum rechten Kind von b und T 2 und T 3 zum linken bzw. rechten Teilbaum von c Beachte: x ist das Kind von y, y ist das Kind von z und z verletzt das AVL-Kriterium Oftmals wird die Restrukturierung auch Rotation genannt Restrukturierung sorgt auch für, dass alle Vorfahren von b das AVL-Kriterium erfüllen Sie muss also nur einmal angewandt werden Löschen in AVL-Bäumen Restrukturierung nach Löschen Zunächst Löschen eines Knoten wie bei normalen Binärbäumen Dadurch kann die AVL-Eigenschaft für manche Knoten verletzt sein Nach einem Löschen gilt für jeden Knoten v: balance(v) {-2, -1, 0, 1, 2} Um die AVL-Eigenschaft wieder herzustellen, wird der Baum anschließend umgebaut Sei w der Vater des entfernten Knotens entscheidend ist die Position, an der ein Knoten weggefallen ist Alle Knoten, deren Höhe sich geändert hat, liegen auf dem Pfad zwischen Wurzel und w Finden der Position zur Restrukturierung gehe von w aufwärts Richtung Wurzel z sei der erste Knoten, der unbalanciert ist (Verletzung AVL-Bedingung) existiert kein solcher Knoten, ist nichts weiter zu tun y sei das Kind von z mit der größeren Höhe von beiden Kindern x sei das Kind von y mit der größeren Höhe von beiden Kindern wenn x nicht eindeutig ist, wähle x so, dass x relativ zu y auf der selben Seite liegt wie y relativ zu z Wende auf x die Funktion restructure(x) an Setze w = b (b wird in restructure() bestimmt) und suche erneut eine Position, für die ggf. eine Restrukturierung erforderlich ist

5 Mehrweg Suchbäume Mehrweg Suchbäume Mehrweg Suchbäume sind eine Verallgemeinerungen von binären Suchbäumen auf d-näre Bäume Definition d-närer Mehrweg Suchbaum Jeder interne Knoten hat mindestens 2 Kinder Jeder Knoten hat mindestens einen Schlüssel Jeder Knoten kann bis zu d Kinder und bis zu d-1 Schlüssel haben Ein Knoten mit d Kindern v 0,..., v d -1 besitzt genau d -1 Schlüssel k 1,..., k d -1 Für die Teilbäume T i, i {0,..., d -1} eines Knotens mit d Kindern gilt: Für alle Schlüssel in T i : k i < Wert des Schlüssels in T i < k i+1 dabei setzen wir k 0 = - und k d = v i sei die Wurzel von T i Beachte: Inorder Traversierung läßt sich leicht auf d-näre Bäume erweitern k i wird zwischen den Werten in den Teilbäumen T i-1 und T i eingeordnet Suchen in Mehrweg Suchbäumen (2, 4)-Bäume Suche nach Schlüssel k Setze Knoten v auf die Wurzel v ist der aktuell betrachtete Knoten Vergleiche k mit den Schlüsseln k i in v Fall 1: k = k i für ein i Dann ist die Suche erfolgreich beendet Fall 2: Fall 1 trifft nicht zu und v ist Blatt Dann ist die Suche erfolglos beendet Fall 3: Fall 1 und 2 treffen nicht zu Dann setzte v = v i für das Kind v i von v mit k i < k < k i+1 und führe wiederum den Vergleich durch Ein (2, 4)-Baum ist ein 4-närer Mehrweg Suchbaum, für den gilt: Alle Blätter haben das gleiche Niveau Anmerkung 2 bis 4 Kinder bedeutet 1 bis 3 Schlüssel diese Anzahl von Schlüsseln gilt auch für Blätter Satz: Die Höhe eines (2, 4)-Baumes mit n Schlüsseln ist O(log n)

6 Einfügen in (2, 4)-Bäume Splitten eines Knotens mit 4 Schlüsseln Einfügen eines Schlüssels k Gehe zunächst vor wie bei der Suche Wird der Schlüssel k gefunden, ist kein Einfügen mehr nötig Sonst: Füge k in den letzten Knoten ein, der beim Suchen betrachtet wurde Beachte: Ein Schlüssel wird immer in Blatt eingefügt Problem: Überlauf kann auftreten Der neue Schlüssel ist ggf. der vierte Schlüssel in diesem Knoten Lösung: Splitten des Knotens Der Knoten mit 4 Schlüsseln wird durch zwei Knoten ersetzt Der erste Knoten enthält die zwei kleinsten Schlüssel Der zweite Knoten enthält den größten Schlüssel Wenn der übergelaufene Knoten ein innerer Knoten ist, werden auch seine Kinder entsprechend verteilt Der erste Knoten enthält die drei Kinder mit den kleinsten Schlüsseln Der zweite Knoten enthält die zwei Kinder mit den größten Schlüsseln Der zweitgrößte Schlüssel wird in den Vaterknoten eingefügt Das ursprüngliche Kind dieses Vaters wird durch die zwei neugebildeten Knoten ersetzt Der in den Vater eingefügte Schlüssel liegt zwischen den Schlüsseln in den beiden neugebildeten Teilbäumen Beim Vater kann ebenfalls ein Überlauf entstehen Eine neue Wurzel kann entstehen Löschen in (2, 4)-Bäumen Transfer Löschen eines Schlüssels k Entfernt wird zunächst immer ein Schlüssel aus einem Blatt Liegt k nicht in einem Blatt, so wird k durch seinen (Inorder) Nachfolger ersetzt Problem: Unterlauf kann auftreten Der Knoten v, aus dem der Schlüssel entfernt wurde, enthält anschließend keinen Schlüssel mehr Lösung: Fusion oder Transfer Wenn beide benachbarten Geschwister nur einen Schlüssel enthalten: Fusion Sonst: Transfer Indirekt wird ein Schlüssel aus einem benachbarten Geschwisterknoten in den leeren Knoten transferiert Dieser Geschwisterknoten muss selbst mindestens zwei Schlüssel besitzen Wenn es zwei benachbarte Geschwisterknoten gibt, mit denen ein Transfer möglich wäre, nehmen wir den linken Damit der Baum ein korrekter Mehrweg Suchbaum bleibt, kann der Schlüssel nicht direkt transferiert werden Vorgehen Verschiebe einen Schlüssel aus dem gemeinsamen Vaterknoten in den leeren Knoten Verschiebe einen Schlüssel aus dem Geschwisterknoten in den Vaterknoten Wenn der vorher leere Knoten kein Blatt ist: Verschiebe ein Kind vom Geschwisterknoten zu diesem Knoten Beachte: Ein Transfer kann keine weiteren Unterläufe verursachen

7 Fusion (a, b)-baum Der Knoten ohne Schlüssel wird mit einem benachbarten Geschwisterknoten zusammengefasst Dieser Nachbarknoten enthält genau einen Schlüssel Wenn es zwei benachbarte Geschwisterknoten gibt, nehmen wir den linken Ein Schlüssel aus dem Vaterknoten wird in diesen neugebildeten Knoten verschoben Der aus dem Vater entnommene Schlüssel liegt zwischen den Schlüsseln in den beiden ursprünglichen Teilbäumen Beachte: Aus einem inneren Knoten wird nur dann ein Schlüssel entfernt, wenn sich auch die Zahl der Kinder um eins vermindert hat Der Unterlauf kann sich im Vater fortsetzen Die Höhe des Baumes kann sich dadurch um eins vermindern Ein (a, b)-baum ist eine Verallgemeinerung des (2, 4)- Baums auf andere Anzahlen von Schlüsseln bzw. Kindern Ein (a, b)-baum ist ein b-närer Mehrweg Suchbaum für den gilt: Die Wurzel hat mindestens einen Schlüssel Jeder andere Knoten hat zwischen a-1 und b-1 Schlüssel Dabei muss gelten: 2 a (b + 1) / 2 Alle Blätter haben das gleiche Niveau Für einen (a, b)-baum gilt, dass ein innerer Knoten zwischen a und b Kinder hat Die Operationen auf (a, b)-bäumen sind analog zu denen auf (2, 4)-Bäumen B-Baum Nachteile B-Bäume Ein B-Baum ist ein wichtiger Spezialfall eines (a, b)-baums Ein B-Baum der Ordnung d ist ein (a, b)-baum mit a = d/2 und b = d B-Bäume werden eingesetzt für die Speicherung von Daten auf Sekundärspeicher Ziel: Reduktion der Datentransfers zwischen Sekundärspeicher und Hauptspeicher Knoten muss klein genug sein, damit er in einen Block passt nur ein Datentransfer pro Knoten andererseits wird ein möglichst flacher Baum angestrebt; deshalb möglichst viel Schlüssel pro Knoten Insgesamt wird daher d so gewählt, dass die Knotengröße der Blockgröße entspricht In der Praxis ist die Ordnung nicht fest, sondern variabel abhängig von der konkreten Größe von Schlüsseln und Zeigern Die Performanz eines B-Baums hängt stark von der Höhe des Baumes ab, deswegen wollen wir einen hohen Verzweigungsgrad der inneren Knoten Beachte: Neben dem Schlüssel selbst muss auch der zugehörige Datensatz gespeichert werden Abspeichern von Daten in inneren Knoten reduziert den Verzweigungsgrad In einem B-Baum enthält ein innerer Knoten mit k Einträgen k+1 Zeiger auf Kind-Knoten k Schlüssel k Referenzen auf Daten (oder sogar die Daten selbst)

8 B+-Bäume Beispiel Innerer Knoten B+-Bäume speichern lediglich Referenzschlüssel in inneren Knoten, die Daten selbst werden in Blattknoten gespeichert Jeder Schlüssel taucht in einem Blattknoten auf Schlüssel, die in einem inneren Knoten auftreten, sind zusätzlich auch in einem Blattknoten Meistens sind die Blattknoten noch verkettet, um schnelle sequentielle Suche zu ermöglichen Wie beim B-Baum: Split eines Blatts führt zu Einfügen eines Schlüssels in den Vater-Knoten Im Unterschied zum B-Baum wird er kopiert und nicht verschoben Spilt kann sich wieder nach oben fortsetzen Split eines inneren Knotens führt wie beim B-Baum zum Verschieben eines Schlüssels in den Vater Schlüssel Schlüssel Schlüssel Schlüssel < k<81 81 k<95 95 Beispiel B-Baum vs B+-Baum B-Baum Zeiger: Schlüssel: Blöcke 4 Byte 4 Byte 100 Byte Betrachte einen maximal gefüllten Baum mit zwei Ebenen (Höhe 1) Wurzel hat 8 Schlüssel + 8 Zeiger auf Tupel+ 9 Zeiger auf Kindknoten = 8x4 + 8x4 + 9x4 = 100 Byte Jedes der 9 Kinder: 12 Zeiger auf Tupel (+12 Schlüssel) Max # Tupel = = 12x(4+4) = Bytes 12x9 + 8 = 116

9 B+-Baum Einordnung Suchbäume Wurzel hat 12 Schlüssel + 13 Zeiger auf Kindknoten = 12x4 + 13x4 = 100 Byte Jedes der 13 Kinder: 12 Zeiger auf Tupel (+12 Schlüssel) Max # Tupel = = 12x(4 +4) = Bytes 13x12 = 156 Schlussfolgerung: Bei einer festen Blockgröße kann ein B+ Baum bei gleicher Anzahl von Ebenen mehr Einträge aufnehmen Die Höhe des Baums ist daher geringer Suchbäume mittlerer Aufwand für Einfügen, Suchen, Löschen jeweils O(log n) Hashtabellen mittlerer Aufwand für Einfügen, Suchen, Löschen jeweils O(1) Warum dann Suchbäume? Bei Suchbäumen ist O(log n) auch der Aufwand im ungünstigsten Fall. Bei Hashtabellen kann der Aufwand im ungünstigsten Fall O(n) werden Größe der Hashtabelle ist (bei klassischen Hashverfahren) statisch. Um einen angemessenen Belegungsfaktor zu erhalten, muss die Anzahl der Schlüssel also zumindest ungefähr bekannt sein Hashtabellen unterstützen keine Bereichssuche Implementierung Binärbaum (1) Implementierung Binärbaum (2) Verkettung Baum wird durch eine Menge verketteter Knoten repräsentiert Jeder Knoten enthält Wert/Schlüssel und ggf. weitere Daten Verweis auf Vater Verweis auf linkes Kind Verweis auf rechtes Kind Lässt sich leicht auf beliebige k-näre Bäume erweitern Array Jedes Element im Array enthält einen Knoten Die Kanten werden nicht explizit repräsentiert, sondern durch die Position der Knoten im Array Die Position eines Knotens v ist p(v) gemäß folgender Definition Die Knoten eines Binärbaumes lassen sich wie folgt nummerieren: Sei v ein Knoten und p(v) seine Nummer. Dann setzen wir: wenn v die Wurzel ist: p(v) = 1 wenn v das linke Kind von u ist: p(v) = 2 * p(u) wenn v das rechte Kind von u ist: p(v) = 2 * p(u) + 1 Wenn u der Vater von v ist gilt also: p(u) = p(v) / 2 Problem: einzelne Positionen können leer bleiben, wenn der Baum nicht entsprechend gefüllt ist

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

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

Gliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen 5. Compiler Gliederung 1. Struktur eines Compilers 2. Syntaxanalyse durch rekursiven Abstieg 3. Ausnahmebehandlung 4. Arrays und Strings 6. Sortieren und Suchen 1. Grundlegende Datenstrukturen 2. Bäume

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

ADS: Algorithmen und Datenstrukturen

ADS: Algorithmen und Datenstrukturen ADS: Algorithmen und Datenstrukturen Teil X Peter F. Stadler & Konstantin Klemm Bioinformatics Group, Dept. of Computer Science & Interdisciplinary Center for Bioinformatics, University of Leipzig 13.

Mehr

Christian Rieck, Arne Schmidt

Christian Rieck, Arne Schmidt Institute of Operating Systems and Computer Networks Algorithms Group Algorithmen und Datenstrukturen Wintersemester 207/208 Übung#5, 2.2.207 Christian Rieck, Arne Schmidt Bäume Satz Jeder gerichtete Baum

Mehr

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.

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. .3 B-Bäume 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. Wird der t-äre Baum zur Verwaltung von Daten

Mehr

Mehrwegbäume Motivation

Mehrwegbäume Motivation Mehrwegbäume Motivation Wir haben gute Strukturen (AVL-Bäume) kennen gelernt, die die Anzahl der Operationen begrenzen Was ist, wenn der Baum zu groß für den Hauptspeicher ist? Externe Datenspeicherung

Mehr

Informatik II Bäume zum effizienten Information Retrieval

Informatik II Bäume zum effizienten Information Retrieval lausthal Informatik II Bäume zum effizienten Information Retrieval. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Binäre Suchbäume (binary search tree, BST) Speichere wieder Daten als "Schlüssel

Mehr

2.7 Bucket-Sort Bucket-Sort ist ein nicht-vergleichsbasiertes Sortierverfahren. Hier können z.b. n Schlüssel aus

2.7 Bucket-Sort Bucket-Sort ist ein nicht-vergleichsbasiertes Sortierverfahren. Hier können z.b. n Schlüssel aus 2.7 Bucket-Sort Bucket-Sort ist ein nicht-vergleichsbasiertes Sortierverfahren. Hier können z.b. n Schlüssel aus {0, 1,..., B 1} d in Zeit O(d(n + B)) sortiert werden, indem sie zuerst gemäß dem letzten

Mehr

Einfache binäre Suchbäume können entarten, so dass sich die Tiefen ihrer Blattknoten stark unterscheiden

Einfache binäre Suchbäume können entarten, so dass sich die Tiefen ihrer Blattknoten stark unterscheiden 5.6.2 AVL-Bäume Einfache binäre Suchbäume können entarten, so dass sich die Tiefen ihrer Blattknoten stark unterscheiden AVL-Bäume, benannt nach ihren Erfindern G. M. Adelson- Velskii und E. M. Landis,

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

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

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil 6 Suchbäume Version vom 25. November 2016 1 / 75 Vorlesung 10 22. November 2016 2

Mehr

Suchstrukturen. Übersicht. 8 Suchstrukturen. Allgemeines. H. Täubig (TUM) GAD SS

Suchstrukturen. Übersicht. 8 Suchstrukturen. Allgemeines. H. Täubig (TUM) GAD SS Übersicht 8 Suchstrukturen Allgemeines Binäre Suchbäume AVL-Bäume H. Täubig (TUM) GAD SS 14 309 Allgemeines Übersicht 8 Suchstrukturen Allgemeines Binäre Suchbäume AVL-Bäume H. Täubig (TUM) GAD SS 14 310

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Binäre Bäume Zum Speichern und Suchen von Daten werden häufig Baumstrukturen verwendet Abspeichern von n Datenobjekten in einer Baumstruktur Ablegen von Daten ist in O(log(n))

Mehr

Aufgaben, Hilfestellungen und Musterlösungen zum Modul 5 Druckversion

Aufgaben, Hilfestellungen und Musterlösungen zum Modul 5 Druckversion Abschnitt 1 Aufgaben, Hilfestellungen und Musterlösungen zum Modul 5 Druckversion Aufgabe 1: Binäre Suchbäume: Iteratives Suchen/Einfügen/Löschen Das Material dieser Übung enthält in der Klasse Tree0 die

Mehr

Algorithmen und Datenstrukturen. Bäume. M. Herpers, Y. Jung, P. Klingebiel

Algorithmen und Datenstrukturen. Bäume. M. Herpers, Y. Jung, P. Klingebiel Algorithmen und Datenstrukturen Bäume M. Herpers, Y. Jung, P. Klingebiel 1 Lernziele Baumstrukturen und Ihre Verwendung kennen Grundbegriffe zu Bäumen anwenden können Baumstruktur in C anlegen können Suchbäume

Mehr

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

Wiederholung. Bäume sind zyklenfrei. Rekursive Definition: Baum = Wurzelknoten + disjunkte Menge von Kindbäumen. Wiederholung Baum: Gerichteter Graph, der die folgenden drei Bedingungen erfüllt: Es gibt einen Knoten, der nicht Endknoten einer Kante ist. (Dieser Knoten heißt Wurzel des Baums.) Jeder andere Knoten

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

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

Rotation. y T 3. Abbildung 3.10: Rotation nach rechts (analog links) Doppelrotation y Die AVL-Eigenschaft soll bei Einfügungen und Streichungen erhalten bleiben. Dafür gibt es zwei mögliche Operationen: -1-2 Rotation Abbildung 3.1: Rotation nach rechts (analog links) -2 +1 z ±1 T 4 Doppelrotation

Mehr

DB-Zugriffsverfahren: Übersicht B-Bäume B*-Bäume Übersicht

DB-Zugriffsverfahren: Übersicht B-Bäume B*-Bäume Übersicht DB-Zugriffsverfahren: Übersicht B*-Bäume N. Ritter, HMS Übersicht Zugriffsverfahren über Schlüssel Sequentielle Speicherungsstrukturen Baumsstrukturen Gestreute Speicherungsstrukturen Sequentielle Listen

Mehr

ADS 1: Algorithmen und Datenstrukturen

ADS 1: Algorithmen und Datenstrukturen ADS 1: Algorithmen und Datenstrukturen Teil IX Uwe Quasthoff Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 1 Dezember 017 [Letzte Aktualisierung: 04/1/017, 10:56]

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

AVL-Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. AVL-Bäume 1/38

AVL-Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. AVL-Bäume 1/38 AVL-Bäume (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun Letzte Änderung: 18.03.2018 18:16 AVL-Bäume 1/38 Balancierte Bäume in einem zufällig erzeugten Binärbaum haben die Algorithmen Suchen,

Mehr

Logische Datenstrukturen

Logische Datenstrukturen Lineare Listen Stapel, Warteschlangen Binärbäume Seite 1 Lineare Liste Begriffe first Funktion: sequentielle Verkettung von Datensätzen Ordnungsprinzip: Schlüssel Begriffe: first - Anker, Wurzel; Adresse

Mehr

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

Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...) Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...) Inhalt: Einleitung, Begriffe Baumtypen und deren Kodierung Binäre Bäume Mehrwegbäume Prüfer

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

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

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

Teil 1: Suchen. Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume Ausgeglichene Bäume B-Bäume Digitale Suchbäume Teil 1: Suchen Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume Ausgeglichene Bäume B-Bäume Digitale Suchbäume M.O.Franz; Oktober 07 Algorithmen und Datenstrukturen - B-Bäume 1-1

Mehr

Satz 172 Jedes vergleichsbasierte Sortierverfahren benötigt im worst-case mindestens n ld n + O(n) Vergleiche und hat damit Laufzeit Ω(n log n).

Satz 172 Jedes vergleichsbasierte Sortierverfahren benötigt im worst-case mindestens n ld n + O(n) Vergleiche und hat damit Laufzeit Ω(n log n). 2.6 Vergleichsbasierte Sortierverfahren Alle bisher betrachteten Sortierverfahren sind vergleichsbasiert, d.h. sie greifen auf Schlüssel k, k (außer in Zuweisungen) nur in Vergleichsoperationen der Form

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

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO INF.02031UF (2-4)-Bäume robert.legenstein@igi.tugraz.at 1 7. Bäume Bäume als Datenstruktur Binärbäume Balancierte Bäume (2-4)-Bäume Anwendung: Mischbare Warteschlangen

Mehr

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

Wiederholung. Datenstrukturen und. Bäume. Wiederholung. Suchen in linearen Feldern VO Wiederholung Datenstrukturen und Algorithmen VO 708.031 Suchen in linearen Feldern Ohne Vorsortierung: Sequentielle Suche Speicherung nach Zugriffswahrscheinlichkeit Selbstanordnende Felder Mit Vorsortierung:

Mehr

Baumbasierte Strukturen

Baumbasierte Strukturen Baumbasierte Strukturen Baumbasierte Struktur / Organisation als Binärbaum Haufendateien oder sortierte Dateien nützlich für statische Dateien Dateien organisiert als Binärbaum Effizientes Einfügen und

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

7. Sortieren Lernziele. 7. Sortieren

7. Sortieren Lernziele. 7. Sortieren 7. Sortieren Lernziele 7. Sortieren Lernziele: Die wichtigsten Sortierverfahren kennen und einsetzen können, Aufwand und weitere Eigenschaften der Sortierverfahren kennen, das Problemlösungsparadigma Teile-und-herrsche

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 10. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Suchverfahren für große Datenmengen bisher betrachtete Datenstrukturen

Mehr

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

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 Teil : Suchen Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume (Wiederholung aus Prog 2) Bäume: Begriffe, Eigenschaften und Traversierung Binäre Suchbäume Gefädelte Suchbäume Ausgeglichene

Mehr

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

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2017/18. Pro f. Dr. Sán do r Fe k e te 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

Mehr

Algorithmen und Datenstrukturen 13

Algorithmen und Datenstrukturen 13 19. Juli 2012 1 Besprechung Blatt 12 Fragen 2 Bäume AVL-Bäume 3 Graphen Allgemein Matrixdarstellung 4 Graphalgorithmen Dijkstra Prim Kruskal Fragen Fragen zu Blatt 12? AVL-Bäume AVL-Bäume ein AVL-Baum

Mehr

Dynamische Datenstrukturen

Dynamische Datenstrukturen Dynamische Datenstrukturen B-Bäume größere Datenmengen verwalten Extern speichern Art der Speicherung berücksichtigen sonst kein optimaler Datenzugriff möglich Art der Speicherung großer Datenmengen Magnetplatten

Mehr

Invarianzeigenschaft (für binären Suchbaum)

Invarianzeigenschaft (für binären Suchbaum) 5.3 Binäre Suchbäume Invarianzeigenschaft (für binären Suchbaum) Im linken Teilbaum befinden sich nur Werte, die kleiner gleich dem Knotenwert sind, im rechten Teilbaum nur solche, die größer sind. und

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

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

Definition 14 Rot-Schwarz-Bäume sind externe Binärbäume (jeder Knoten hat 0 oder 2 Kinder) mit roten und schwarzen Kanten, so dass gilt: 2.1.2 Rot-Schwarz-Bäume Definition 14 Rot-Schwarz-Bäume sind externe Binärbäume (jeder Knoten hat 0 oder 2 Kinder) mit roten und schwarzen Kanten, so dass gilt: 1 alle Blätter hängen an schwarzen Kanten

Mehr

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

1 AVL-Bäume. 1.1 Aufgabentyp. 1.2 Überblick. 1.3 Grundidee AVL-Bäume. Aufgabentyp Fügen Sie in einen anfangs leeren AVL Baum die folgenden Schlüssel ein:... Wenden Sie hierbei konsequent den Einfüge /Balancierungsalgorithmus an und dokumentieren Sie die ausgeführten

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 8. Vorlesung Martin Middendorf und Peter F. Stadler Universität Leipzig Institut für Informatik middendorf@informatik.uni-leipzig.de studla@bioinf.uni-leipzig.de Gefädelte

Mehr

5.5 Prioritätswarteschlangen

5.5 Prioritätswarteschlangen 5.5 Prioritätswarteschlangen LIFO- und FIFO-Warteschlangen entfernen Werte aus der Warteschlange in Abhängigkeit davon, wann sie in diese eingefügt wurden Prioritätswartschlangen interpretieren die Werte

Mehr

Datenstrukturen und Algorithmen SS17 Lösung - Übung 5

Datenstrukturen und Algorithmen SS17 Lösung - Übung 5 Prof. aa Dr. Ir. G. Woeginger T. Hartmann, D. Korzeniewski, B. Tauer Hausaufgabe (Inorder-Traversierung binärer Suchbäume): (3 + 3 Punkte) Es soll bewiesen werden, dass die Inorder-Traversierung alle Schlüssel

Mehr

B*-BÄUME. Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records.

B*-BÄUME. Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records. B*-Bäume 1 B*-BÄUME Beobachtung: Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records. Es gibt keinen Grund, warum man nicht einen Index über einem Index haben sollte, und

Mehr

Übung: Algorithmen und Datenstrukturen SS 2007

Übung: Algorithmen und Datenstrukturen SS 2007 Ü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

Mehr

18. Natürliche Suchbäume

18. Natürliche Suchbäume Wörterbuchimplementationen 1. Natürliche Suchbäume [Ottman/Widmayer, Kap..1, Cormen et al, Kap. 12.1-12.] Hashing: Implementierung von Wörterbüchern mit erwartet sehr schnellen Zugriffszeiten. Nachteile

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

Indexe in Dateien. Thomas Behr. 19.November c 2015 FernUniversität in Hagen

Indexe in Dateien. Thomas Behr. 19.November c 2015 FernUniversität in Hagen Indexe in Dateien Fakultät für Mathematik und Informatik Datenbanksysteme für neue Anwendungen FernUniversität in Hagen 19.November 2015 c 2015 FernUniversität in Hagen Indexe ermöglichen schnellen Zugriff

Mehr

Datenstrukturen und Algorithmen SS07

Datenstrukturen und Algorithmen SS07 Datenstrukturen und Algorithmen SS07 Datum: 25.4.2007 Michael Belfrage mbe@student.ethz.ch belfrage.net/eth Programm von Heute Nachbesprechung Serie 4 Challenge der Woche Traversierung von Bäumen Pre-,

Mehr

Universität Augsburg, Institut für Informatik WS 2009/2010 Prof. Dr. W. Kießling 15. Jan Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 10

Universität Augsburg, Institut für Informatik WS 2009/2010 Prof. Dr. W. Kießling 15. Jan Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 10 Universität Augsburg, Institut für Informatik WS 009/010 Prof. Dr. W. Kießling 15. Jan. 010 Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 10 Aufgabe 1: B-Bäume Datenbanksysteme I a) Abschätzen der Höhe

Mehr

Dynamische Mengen. Realisierungen durch Bäume

Dynamische Mengen. Realisierungen durch Bäume Dynamische Mengen Eine dynamische Menge ist eine Datenstruktur, die eine Menge von Objekten verwaltet. Jedes Objekt x trägt einen eindeutigen Schlüssel key[x]. Die Datenstruktur soll mindestens die folgenden

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 7. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@informatik.uni-leipzig.de aufbauend auf den Kursen der letzten Jahre von E. Rahm, G. Heyer,

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

Übung Datenstrukturen. Bäume

Übung Datenstrukturen. Bäume Übung Datenstrukturen Bäume Übung Binärbaum 7 2 10 1 3 5 9 34 8 7 11 13 17 7 25 19 3 Aufgabe 1 Geben Sie die Reihenfolge der besuchten Knoten nach Prä-, In-, Post- und Levelorder an! Übung Binärbaum Aufgabe

Mehr

Programmiertechnik II

Programmiertechnik II Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...

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

7 Weitere Baumstrukturen und Heapstrukturen

7 Weitere Baumstrukturen und Heapstrukturen 7 Weitere Baumstrukturen und Heapstrukturen Man kann kurze Suchzeiten in Baumstrukturen erreichen durch Rebalancierung bei Einfügungen und Löschungen (AVL Bäume, gewichtsbalancierte Bäume, Bruderbäume,

Mehr

Fast Searching / Balanced trees

Fast Searching / Balanced trees Fast Searching / Balanced trees November, 8 Algorithms & Datastructures Exercises WS 8 DI -Tanase, DI Stefan Grünberger University Linz, Institute for Pervasive Computing Altenberger Straße 69, A- Linz

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 4 FS 15

Datenstrukturen & Algorithmen Lösungen zu Blatt 4 FS 15 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 18. März

Mehr

B / B* - Bäume. Guido Hildebrandt Seminar Datenbanksysteme

B / B* - Bäume. Guido Hildebrandt Seminar Datenbanksysteme B / B* - Bäume Guido Hildebrandt Seminar Datenbanksysteme 25.11.2010 Gliederung Einleitung Binärbaum B - Baum B* - Baum Varianten Zusammenfassung Quellen Gliederung Einleitung Binärbaum B - Baum B* - Baum

Mehr

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

Balancierte Bäume. Minimale Knotenanzahl von AVL-Bäumen. AVL-Bäume. Definition für balanciert: Balancierte Bäume Aufwand, ein Element zu finden, entspricht der Tiefe des gefundenen Knotens im worst case = Tiefe des Baumes liegt zwischen log N und N Definition für "balanciert": es gibt verschiedene

Mehr

Trees. November 14, Algorithms & Datastructures 2 Exercises WT 2017

Trees. November 14, Algorithms & Datastructures 2 Exercises WT 2017 Trees November 14, 2017 Algorithms & Datastructures 2 Exercises WT 2017 Dipl.-Ing. University Linz, Institute for Pervasive Computing Altenberger Straße 69, A-4040 Linz anzengruber@pervasive.jku.at Binärbaum

Mehr

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

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

Mehr

Wünschenswerte Eigenschaft von Suchbäumen mit n Knoten: Suchen, Einfügen, Löschen auch im schlechtesten Fall O(log n)

Wünschenswerte Eigenschaft von Suchbäumen mit n Knoten: Suchen, Einfügen, Löschen auch im schlechtesten Fall O(log n) .6 Ausgeglichene Mehrweg-Suchbäume Wünschenswerte Eigenschaft von Suchbäumen mit n Knoten: Suchen, Einfügen, Löschen auch im schlechtesten Fall O(log n) Methoden: lokale Transformationen (AVL-Baum) Stochastische

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

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

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/3, Folie 1 2010 Prof. Steffen Lange - HDa/FbI

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 9. Vorlesung Peter Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Balancierte Binärbäume Der ausgeglichene binäre Suchbaum verursacht

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen B7. Balancierte Bäume 1 Marcel Lüthi and Gabriele Röger Universität Basel 13. April 2018 1 Folien basieren auf Vorlesungsfolien von Sedgewick & Wayne https://algs4.cs.princeton.edu/lectures/33balancedsearchtrees-2x2.pdf

Mehr

Rückblick: Pufferverwaltung

Rückblick: Pufferverwaltung Rückblick: Pufferverwaltung Datenbankpuffer zum Schließen der Zugriffslücke zwischen Primär- und Sekundärspeicher Ersetzungsstrategien berücksichtigen Zeitpunkte und/oder Anzahl der Zugriffe auf bestimmte

Mehr

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

Clausthal C G C C G C. Informatik II Bäume. G. Zachmann Clausthal University, Germany Beispiele. Stammbaum. lausthal Informatik II Bäume. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Beispiele Stammbaum. Zachmann Informatik - SS 0 Bäume Stammbaum Parse tree, Rekursionsbaum Unix file hierarchy

Mehr

Trees. November 13, Algorithms & Datastructures 2 Exercises WT 2017

Trees. November 13, Algorithms & Datastructures 2 Exercises WT 2017 Trees November 13, 2018 Algorithms & Datastructures 2 Exercises WT 2017 Dipl.-Ing. University Linz, Institute for Pervasive Computing Altenberger Straße 69, A-4040 Linz anzengruber@pervasive.jku.at Binärbaum

Mehr

4.3 Bäume. Definition des Baumes. Bäume sind eine sehr wichtige Datenstruktur der Informatik.

4.3 Bäume. Definition des Baumes. Bäume sind eine sehr wichtige Datenstruktur der Informatik. 4.3 Bäume Bäume sind eine sehr wichtige Datenstruktur der Informatik. Definition des Baumes Ein Baum besteht aus einer nichtleeren Menge von Knoten und einer Menge von Kanten. Jede Kante verbindet genau

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (22 - AVL-Bäume: Entfernen) Prof. Dr. Susanne Albers Definition von AVL-Bäumen Definition: Ein binärer Suchbaum heißt AVL-Baum oder höhenbalanziert,

Mehr

Algorithmen und Datenstrukturen, FS17 Prof Dr Christian Tschudin

Algorithmen und Datenstrukturen, FS17 Prof Dr Christian Tschudin Departement Mathematik und Informatik Algorithmen und Datenstrukturen, FS17 Prof Dr Christian Tschudin 5. April 2017 Suchbäume I Andrew D. Booth Algorithmen und Datenstrukturen, FS17 5. April 2017 2 /

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 2 Übung zur Vorlesung Grundlagen: Datenbanken im WS3/4 Henrik Mühe (muehe@in.tum.de) http://www-db.in.tum.de/teaching/ws34/dbsys/exercises/

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

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

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume

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

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

Binäre Suchbäume. Organisatorisches. VL-10: Binäre Suchbäume. (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger.

Binäre Suchbäume. Organisatorisches. VL-10: Binäre Suchbäume. (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger. Organisatorisches VL-10: inäre Suchbäume (Datenstrukturen und lgorithmen, SS 17) Gerhard Woeginger Vorlesung: Gerhard Woeginger (Zimmer 4024 im E1) Sprechstunde: Mittwoch 11: 12:00 Übungen: Tim Hartmann,

Mehr

Kapitel Andere dynamische Datenstrukturen

Kapitel Andere dynamische Datenstrukturen Institute of Operating Systems and Computer Networks Algorithms Group Kapitel 4.8-4.11 Andere dynamische Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2017/2018 Vorlesung#13, 12.12.2017

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 10 Übung zur Vorlesung Grundlagen: Datenbanken im WS15/16 Harald Lang, Linnea Passing (gdb@in.tum.de)

Mehr

Kapitel Andere dynamische Datenstrukturen

Kapitel Andere dynamische Datenstrukturen Institute of Operating Systems and Computer Networks Algorithms Group Kapitel 4.8-4.11 Andere dynamische Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2018/2019 Vorlesung#15, 18.12.2018

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

B-Bäume, Hashtabellen, Cloning/Shadowing, Copy-on-Write

B-Bäume, Hashtabellen, Cloning/Shadowing, Copy-on-Write B-Bäume, Hashtabellen, Cloning/Shadowing, Copy-on-Write Thomas Maier Proseminar: Ein- / Ausgabe Stand der Wissenschaft Seite 1 von 13 Gliederung 1. Hashtabelle 3 2.B-Baum 3 2.1 Begriffserklärung 3 2.2

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

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

Ü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

Algorithmen und Datenstrukturen 1-5. Seminar -

Algorithmen und Datenstrukturen 1-5. Seminar - Algorithmen und Datenstrukturen 1-5. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Wintersemester 2009/10 Outline 5.+6. Übungsserie: 5 Aufgaben, insgesamt 40 Punkte A17 Baum-Traversierung

Mehr

Algorithmen und Datenstrukturen. Kapitel 4: Suchverfahren. Skript zur Vorlesung. Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen. Kapitel 4: Suchverfahren. Skript zur Vorlesung. Algorithmen und Datenstrukturen LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Algorithmen und Datenstrukturen Kapitel 4: Suchverfahren Skript zur Vorlesung Algorithmen und Datenstrukturen Sommersemester

Mehr

Abschnitt 18: Effizientes Suchen in Mengen

Abschnitt 18: Effizientes Suchen in Mengen Abschnitt 18: Effizientes Suchen in Mengen 18. Effizientes Suchen in Mengen 18.1 Vollständig ausgeglichene binäre Suchbäume 18.2 AVL-Bäume 18.3 Operationen auf AVL-Bäumen 18.4 Zusammenfassung 18 Effizientes

Mehr

Informatik II, SS 2016

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

Mehr