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



Ähnliche Dokumente
Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen

Oracle 10g Einführung

Logische Datenstrukturen

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

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

Algorithmen und Datenstrukturen

WS 2013/14. Diskrete Strukturen

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

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

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

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

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Graphen und Bäume. A.1 Graphen

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

Informatik II Bäume zum effizienten Information Retrieval

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

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph

Algorithmen und Datenstrukturen 1

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

Algorithmen und Datenstrukturen

C G C C G C. Löschen von Knoten. Beispiel: Löschen von k =

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

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

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

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

Datenstrukturen und Algorithmen (SS 2013)

Informatik II, SS 2014

Datenstrukturen & Algorithmen

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

Isomorphie von Bäumen

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

ADS: Algorithmen und Datenstrukturen

Mehrwegbäume Motivation

Motivation Binäre Suchbäume

5 Bäume. 5.1 Suchbäume. ein geordneter binärer Wurzelbaum. geordnete Schlüsselwertmenge. heißt (schwach) sortiert, g.d.w. gilt:

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

Algorithmen und Datenstrukturen 1

Verkettete Datenstrukturen: Bäume

Graphen Jiri Spale, Algorithmen und Datenstrukturen - Graphen 1

Graphen. Definitionen

Einführung in die Informatik 2

7 Weitere Baumstrukturen und Heapstrukturen

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

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

Algorithmen und Datenstrukturen I AVL-Bäume

Christian Rieck, Arne Schmidt

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 2-1. Seminar -

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

ADS: Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 13

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

18. Natürliche Suchbäume

Informatik II, SS 2016

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Informatik II, SS 2016

Anwendungsbeispiel MinHeap

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

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

Vorlesung Datenstrukturen

ContainerDatenstrukturen. Große Übung 4

Algorithmische Graphentheorie

ADS: Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2

Grundlagen der Informatik / Algorithmen und Datenstrukturen. Aufgabe 143

Programmiertechnik II

WS 2009/10. Diskrete Strukturen

Lernmodul 7 Algorithmus von Dijkstra

ADS: Algorithmen und Datenstrukturen 2

Vorlesung Datenstrukturen

Verteilen von Bällen auf Urnen

Vorlesung Datenstrukturen

Binäre Bäume Darstellung und Traversierung

Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B4.1 Definitionen und Eigenschaften. B4.2 Traversierung. B4.

9. Natürliche Suchbäume

Einführung in die Informatik 2

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

Algorithmen und Datenstrukturen

15. Elementare Graphalgorithmen

B-Bäume I. Algorithmen und Datenstrukturen 220 DATABASE SYSTEMS GROUP

Dynamische Mengen. Realisierungen durch Bäume

ADS 1: Algorithmen und Datenstrukturen

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

ADS: Algorithmen und Datenstrukturen

Dynamische Datenstrukturen

Algorithmen und Datenstrukturen SS09. Foliensatz 16. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik

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

Tutorium Algorithmen & Datenstrukturen

Binärbäume: Beispiel

Datenstrukturen und Algorithmen

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

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

11.1 Grundlagen - Denitionen

elementare Datenstrukturen

Suchbäume mit inneren Knoten verschiedener Knotengrade.

Transkript:

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

Inhalt Grundbegriffe: Baum, Binärbaum Binäre Suchbäume (Definition) Typische Aufgaben Suchaufwand Löschen allgemein, Methode Schlüsseltransfer Programmiertechnik 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 2

Baum: Grundbegriffe #1 Graph: gerichtet, ungerichtet Komponenten: Knoten Elemente: Eigenschaften Kanten Beziehungen zwischen Elementen Baum: 1. Spezielfall eines Graphen 2. Verallgemeinerung der Liste Liste: 1 Element: 1 Nachfolger Baum: 1 Element: 1 Nachfolger d t-ärer Baum, Baum der Ordnung t zu jedem Element sind höchstens t Nachfolger festgelegt t=1 Spezialfall: Liste; t=2 Binärbaum; t=3 Ternärbaum,... 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 3

Baum: Grundbegriffe #2 Knotensorten Vorgänger = Vater Nachfolger = Sohn = Kind Wurzel Blatt=äußerer K. innerer Knoten Randknoten Knoten ohne Vorgänger Knoten ohne Nachfolger Knoten mit Vorgänger und Nachfolger Knoten mit < t Nachfolger Pfad Weg von der Wurzel zu jedem Knoten Pfadlänge Anzahl von Knoten im Pfad Voller Baum alle Blätter haben die gleiche Pfadlänge Quasivoller Baum nur die unterste Ebene ist nicht voll besetzt 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 4

Varianten von Bäumen Zahl der Nachfolger: fest oder beliebig Sortierung: Ungeordneter Baum: Nachfolger unsortiert Geordneter Baum: 1., 2.,...,k-ter Nachfolger; beim Binärbaum: linker, rechter Nachfolger Ebene 1 W W Ebene 2 1. 2. 3. L R Ebene 3 1. 2 3 4. 1. 2. 1. 2. L R L R Beide Beispielsbäume: Höhe h=3 Linker Teilbaum von W 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 5

Implementierung von Bäumen Einige Beispiele: als 2 Felder 1 Knoten: 2 3 v(1) v(2) v(3) Kanten: e(1,1)=0 e(1,2)=1 e(1,3)=1 e(1,1)=0 e(2,1)=0 e(1,2)=0 e(2,2)=0 e(1,3)=0 e(2,3)=0 e(3,1)=0 e(3,2)=0 e(3,3)=0 e[i][j]==1 g.d.w. e[j] Nachfolger von e[i] als Struktur (C++:Klasse) mit Zeigern... natürlich Knoten-Nr.=1 1 2 3 Knoten-Daten Knoten-Nr.=2 Knoten-Daten null null Knoten-Nr.=3 Knoten-Daten null null 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 6

Zusammenhänge Mit der Graphentheorie Ein Baum ist ein gerichteter zusammenhängender kreisfreier Graph mit einer speziellen Eigenschaft: Jeder Knoten hat bis auf einen (Wurzelknoten) genau einen Vorgänger. Mit der linearen Algebra Baum ~ Basis kreisfrei ~ linear unabhängig zusammenhängend ~ Erzeugendensystem Kantenzahl ~ Dimension eines Vektorraumes 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 7

Bäume und lineare Algebra Satz: Charakterisierung von Bäumen Es sei G = (V,E) ein endlicher Graph; V... Knotenmenge, E... Kantenmenge. Folgende Eigenschaften sind äquivalent: (1) G ist ein Baum (2) G ist kreisfrei, und das Hinzufügen einer beliebigen Kante zu E erzeugt einen Kreis (G ist maximal kreisfrei) (3) Zwischen je zwei Knoten gibt es genau einen einfachen Weg in G (4) G ist zusammenhängend, und die Wegnahme einer beliebigen Kante aus E zerstört den Zusammenhang von G (G ist minimal zusammenhängend) (5) G ist kreisfrei und seine Kantenzahl ist E = V - 1 (6) G ist zusammenhängend und E = V - 1 analoge Eigenschaften in Vektorräumen (2) Eine Basis ist eine maximal linear unabhängige Menge, d.h. bei Hinzufügen eines Vektors wird die Unabhängigkeit zerstört (4) Eine Basis ist eine minimale Erzeugendenmenge, d.h. bei Wegnahme eines Vektors hat man kein Erzeugendensystem mehr (5),(6) In Vektorräumen haben alle Basen eines (endlichdimensionalen) Vektorraumes die gleiche Größe, nämlich die Dimension des Vektorraumes 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 8

Binärbaum: Grundbegriffe linker, rechter Nachfolger linker, rechter Teilbaum (Unterbaum) eines Knotens Ebenen Höhe des Baums: Anzahl der Ebenen; im Bild: h = 3 Ebene 1 W Ebene 2 L R Ebene 3 L R L R Linker Teilbaum von W 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 9

Abbildung Datenstruktur, wobei jedes Datum = Wertepaar: Schlüssel: nach dem Schlüssel wird gesucht Wert: Zielinformation Beispiel: Telefonbuch: Namen = Schlüssel, Telefonnummer = Werte Zusammenhang mit der Mathematik: A: S W, A...partielle Abbildung, S...Schlüsselmenge, W...Wertemenge Partiell: i.d.r nur ein (geringer) Teil der Schlüssel hat einen zugeordneten Wert Sonderform Wörterbuch Abbildung, bei der das gesamte zu speichernde Datum ein Schlüssel ist 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 10

Binäre Suchbäume Besonders geeignet für Speicherung von Daten, nach denen später gesucht werden soll: Sie sind speziell auf Suchoperationen hin optimiert. Definition: Ein binärer Suchbaum ist ein binärer Baum mit folgenden Eigenschaften: (1) Jedem Knoten ist ein Schlüssel key zugeordnet (2) Sei x ein beliebiger Knoten und y ein Knoten i seinem linken Unterbaum, so gilt key(y) < key(x) (3) Sei x ein beliebiger Knoten und y ein Knoten in seinem rechten Unterbaum, so gilt key(y) > key(x) Wertepaare Schlüssel-Wert Englisch: Binary Search Tree, BST 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 11

Typische Aufgaben Typische Operationen mit den Wertepaaren Schlüssel-Wert sind Suchen Feststellen, ob ein angegebener Schlüssel im Baum enthalten ist, bzw. den zugehörigen Wert liefern. Einfügen Ein Paar Schlüssel-Wert als einen neuen Knoten an geeignete Stelle im binären Suchbaum einfügen Entfernen Einen Knoten entfernen, wobei der Baum muss auch nach dem Löschen die Eigenschaft beibehalten, binärer Suchbaum zu sein. 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 12

Annahme: alle Schlüssel haben die gleiche Wahrscheinlichkeit, dass sie gesucht werden. Dann: Der Suchaufwand ist minimal, wenn alle Knoten Pfade möglichst gleicher Länge haben (Vollbaum, quasivoller Baum) Beispiel 1: Mit einem vorhandenen (Schlüssel-) Datenbestand ist ein binärer Suchbaum ausgehend vom leeren Baum aufzubauen. Zuerst wird folgende Schlüsselreihenfolge gewählt: 57,23,37,15,30,27,79,33,45 Ergebnis: Pfadlängen-Differenz = 3 Suchaufwand #1 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 13 57 23 79 15 37 30 45 27 33

Suchaufwand #2 Beispiel 2: Eine andere Reihenfolge ergibt eine andere Suchbaum-Struktur: 33,23,45,15,27,30,37,57,79 33 23 45 15 27 37 57 Ergebnis: Pfadlängen-Differenz = 1 30 79 Die Baumstruktur ist von der Schlüsselreihenfolge abhängig. 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 14

BST programmieren:löschen Für Knoten mit 0-1 Nachfolger ist das Löschen einfach: 31 31 25 39 25 7 27 45 27 45 Bei anderen Knoten ist es schwieriger. Z.B. 33 23 15 27 23 45 30 15 27 37 57 37 30 79 Funktioniert, aber... 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 15 45 57 79

BST programmieren:löschen Bessere Lösch-Methode: Schlüsseltransfer 33 30 23 45 23 45 15 27 37 57 15 27 37 57 30 79 79 oder 33 37 23 45 23 15 27 37 57 15 27 30 79 30 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 16 45 57 79

Beispiel: Einfügen Neuer Knoten: 15 25 23 25 27 33 37 45 Programmiertechnik 57 1 2 3 Einf Ein_r(nS, nw, root) RET Einf_r dk ex? J ns<dk.s? N ns>dk.s? N RET New Kn(nS,nW,NULL,NULL) Ein_r(nS, nw, LN) Ein_r(nS, nw, RN) 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 17 N J J dk...ist dieser Knoten bereits drin? ns... neuer Schlüssel nw... neuer Wert LN... linker Nachfolger RN... rechter Nachfolger dk.s... S.v. diesem Knoten 1 2 1 2 3 1 2 1 dk = 33 dk ex? J 25 < 33? J Ein_r(..., LN) dk = 23 dk ex? J 25 < 23? N 25 > 23? J Ein_r(..., RN) dk = 27 dk ex? J 25 < 27? J Ein_r(...,LN) dk = NULL dk ex? N New Kn (ns,nw, NULL,NULL)

BST: andere Aufgaben #1 Bisher: Suchen, Einfügen, Löschen. Was gibt es noch? Durchlauf durch einen Binärbaum - In-Ordnungen LWR-Ordnung: aufgesucht wird: 1. linker Unterbaum, 2. Wurzel, 3. rechter Unterbaum RWL-Ordnung: aufgesucht wird: 1. rechter Unterbaum, 2. Wurzel, 3. linker Unterbaum - Prä-Ordnung: WLR, WRL - Post-Ordnung: LRW, RLW Aufgaben z.b.: - Bestimmen aller Blätter, der Anzahl aller Blätter, aller Knoten - Bestimmen der rechtesten Ecke im linken Unterbaum - Kopieren, Löschen des Baums 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 18

BST: andere Aufgaben #2 Fädelung Beim Durchlauf eines Baums sind stets Rückläufe notwendig. Der Durchlauf kann beschleunigt werden, indem die Leerzeiger in den Blättern mit entsprechenden Zieladressen belegt werden. Bsp: Fädelung bei LWR 15 23 27 30 33 37 45 57 79 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 19

Alternative graphische Darstellung von Bäumen 1 2 3 (1 (2 (4, 5 (9,10), 6), 3 (7, 8))) 1 2 4, 5 9, 10, 6, 3 7, 8 4 5 6 7 8 9 10 1 1 2 4 5 9 10 2 5 4 6 9 10 3 7 8 3 6 7 8 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 20

Ausgeglichenheit der Bäume Definition 1 (Classic): Binäre Baume sind vollständig ausgeglichen, wenn sich für jeden Knoten die ZAHL der Knoten in seinem linken und rechten Teilbaum um höchstens eins unterscheiden. Definition 2 (AVL-Bäume): Ein Baum ist genau dann ausgeglichen, wenn sich für jeden Knoten die HÖHE der Teibäume um höchstens eins unterscheiden 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 21

AVL-Bäume Adelson-Velski, Landis: Neudefinition der Ausgeglichenheit Länge des Suchpfades: O(log 2 n) 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 22

Einfügen in AVL-Bäume Bsp: Einfügen im linken Teilbaum 3 Fälle: h l = h r => hl > hr 1. H(lTb) = H(rTb) H(lTb) > H(rTb), Baum bleibt ausgeglichen Einfügen ausgeglichen 2. H(lTb) < H(rTb) H(lTb) = H(rTb) Baum bleibt ausgeglichen h l < h r => h l < h r ausgeglichen Einfügen 3. H(lTb) > H(rTb) die Ausgeglichenheit wird zerstört, der Baum muß neu strukturiert werden hl > hr hl >> hr Einfügen unausgeglichen 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 23

Rotation bei AVL-Bäumen Wiederherstellung der Ausgeglichenheit LR(b,a) RR(b,a) Ziel: Ebene(b)-- //höher Ebene(a)++ //tiefer Dabei: (1) Falls Vater(a) vorhanden: Vater(a) abhängen, er wird zum Vater(b) (2) Falls LSohn(b) vorhanden: Falls RSohn(b) vorhanden: LSohn(b) abhängen und RSsohn(b) abhängen und als RSohn(a) anhängen als LSohn(a) anhängen n a n+1 b DR=LR+RR 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 24

Rotationsbeispiele#1 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 25

Rotationsbeispiele#2 n+1 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 26

Rotationsbeispiele#3 4 + 7 = a 5 5 2 4 7 + 1 = a 5 2 RR 7 DR => 1 LR 4 3 na 4 2 7 DR => 1 3 5 RR LR 6 na 4 5 < LR => LR 5 4 7 + 2 = > na 7 a 5 5 4 > 2 RR 1 < 4 2 1 3 4 2 1 3 5 7 a 7 RR => 2 7 + 3 = 1 4 na a 4 + 6 = 5 2 5 LR => 7 1 3 LR 7 a 6 na 6 mit: a=ausgeglichen, na=nicht ausgeglichen 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 27

Vielweg-Bäume Anzahl Nachfolger eines Knotens: >2 4 Nachfolger Anwendung: Verwaltung großer Datenmengen Zeiger auf Knoten: Plattenadressen Abb. 29astatt Speicheradressen Zugriffszeiten: (Faktor 10 6 ) Platte: ca. 10 ms Speicher: 10 ns 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 28

Aufteilung eines Baumes in Seiten Seite = Teibaum entspricht: Abb. 30 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 29

Bayer-Bäume (B-Bäume) Eingeführt 1970 von Bayer und McCreight Eigenschaften von Bayer-Bäumen der Ordnung n: Jeder Knoten (Seite) bis auf den Wurzelknoten enthält m Einträge (Schlüssel), mit n<=m<=2*n Die Wurzel enthält 1<=m<=2*n Einträge Jeder Knoten (Seite) hat 0 oder m+1 Nachfolger, d.h. Anzahl der Nachfolger = Anzahl der Einträge + 1 Alle Blätter (Blattseiten) haben die gleiche Höhe h. 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 30

Beispiel für einen B-Baum 25 Wurzel Ordnung n=2 10 20 Seite m=2 30 40 m+1=3 2 5 7 8 10 13 14 15 18 20 22 24 25 26 27 28 30 32 35 38 40 41 42 45 Blattseiten 2n=4 n=2 n <= m <= 2n Abb.31 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 31

Suchen in einem B-Baum 1. Man lese eine Seite in den Hauptspeicher ein (falls existiert). Hat die angegebene Referenz (Zeiger) den Wert Null, dann existiert der Schlüssel S nicht. 2. Man prüfe, ob der gesuchte Schlüssel S vorhanden ist. Diese Suchzeit ist im allgemeinen kleiner als die Zeit zum Einlesen der Seite vom Hintergrundspeicher. 3. Hat die Suche keinen Erfolg, so liegen folgende Situationen vor: 3.1. K i < S < K i+1, für 0 <= i < m-1 mit K i Schlüssel an der Stelle i. Dann setzen wir die Suche auf der Seite P i fort. 3.2. K m-1 < S. Die Suche wird auf der Seite P m fortgesetzt. 3.3. S < K 1. Die Suche wird auf der Seite P 0 fortgesetzt. P 0 K P K 1 P P 1 2 2. P m-2 K m-1 m-1 D 1 D 2 D x m-1 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 32

Löschen aus dem B-Baum#1 Situation 1: Suchargument ist im Blatt: 1.1 Blatt hat mehr als n Elemente (normal): lösche Element zu löschen: 10 20 30 n=2 7 10 15 18 22 26 35 40 41 20 30 7 15 18 22 26 35 40 41 Abb. 33a 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 33

Löschen aus dem B-Baum#2 1.2 Blatt hat genau n Elemente (Unterlauf): betrachte linken (rechten) Bruder 1.2.1 linker (rechter) Bruder hat mehr als n Elemente: dann verschiebe Wurzel ins Blatt und Blatt in die Wurzel n=2 20 30 zu löschen: 22 7 15 18 22 26 35 40 41 löschen Unterlauf droht: Ein Knoten muss min. 2 Elemente haben 20 35 7 15 18 26 30 40 41 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 34 Abb. 33b

Löschen aus dem B-Baum#3 1.2.2 linker und rechter Bruder hat genau n Elemente: dann verkette n=2 20 35 zu löschen: 26 7 15 26 30 40 41 20 7 15 30 35 40 41 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 35 Abb. 33c

Löschen aus dem B-Baum#4 Situation 2: Suchargument ist nicht im Blatt: rechtes Element im linken Teilbaum hochziehen zu löschen: 30 n=2 20 30 löschen 7 15 18 22 26 35 40 41 20 26 7 15 18 22 35 40 41 dann Unterlauf, weiter wie unter 2 18 26 7 15 20 22 35 40 41 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 36 Abb. 33d