Balancierte Suchbäume

Größe: px
Ab Seite anzeigen:

Download "Balancierte Suchbäume"

Transkript

1 Foliensatz 10 Michael Brinkmeier echnische Universität Ilmenau Institut für heoretische Informatik Sommersemester 2009 U Ilmenau Seite 1 / 74 Balancierte Suchbäume U Ilmenau Seite 2 / 74

2 Balancierte Suchbäume Idee Lasse nur Bäume mit bestimmten Struktureigenschaften zu. Ziel ist z.b. das Erzwingen einer geringen iefe (d.h. O(log n) für n Einträge) delete und insert müssen so implementiert werden, dass sie die Struktureigenschaften erhalten und in Zeit O(iefe) durchgeführt werden können. U Ilmenau Seite 3 / 74 Perfekte Balancierung Definition (Perfekte Balancierung) Ein Binärbaum heisst perfekt balanciert, wenn an jedem Knoten die Anzahl der Knoten im linken und im rechten Unterbaum sich um höchstens eins unterscheidet. Mittels der rekursiven Definition erhalten wir: ist perfekt balanciert. ( 1, x, 2 ) ist genau dann perfekt balanciert, wenn 1 und 2 perfekt Balanciert sind, und 1 2 1, wobei i die Anzahl der Knoten in i ist. Die Perfekte Balancierung ist aber eine ungeeignete Strukturbedingung, da delete und insert zu viel Zeit benötigen. U Ilmenau Seite 4 / 74

3 Häufig benutzte Implementierungen AVL-Bäume höhenbalanciert Rot-Schwarz-Bäume (Cormen et al., Sedgewick) 2-3-Bäume bis zu 2 Schlüssel pro Knoten B-Bäume, Bäume (Cormen et al., Sedgewick) U Ilmenau Seite 5 / 74 AVL-Bäume U Ilmenau Seite 6 / 74

4 Höhenbalancierte Suchbäume Definition (Höhenbalancierte Binärbäume) Ein Binärbaum ist höhenbalanciert, falls für jeden Knoten v von der eilbaum v = ( v,1, x, v,1 ) mit Wurzel v die Bedingung erfüllt. d( v,1 ) d( v,2 ) 1 v d( 1 ) d( 2 ) 1 2 U Ilmenau Seite 7 / 74 Höhenbalancierte Suchbäume Äquivalent, kann man höhenbalancierte Binärbäume rekursiv definieren: Definition (Höhenbalancierte Binärbäume (rekursive Charakterisierung)) ist höhenbalanciert. Sind 1 und 2 höhenbalanciert und gilt d( 1 ) d( 2 ) 1, dann ist auch ( 1, x, 2 ) höhenbalanciert. Der Balancefaktor bal(v) eines Knotens v ist genau die Höhendifferenz der Unterbäume, d.h. bal(v) := d( v,2 ) d( v,1 ). Achtung! Die iefe des linken Unterbaumes wird von der des rechten abgezogen. U Ilmenau Seite 8 / 74

5 Beispiele für den Balancefaktor U Ilmenau Seite 9 / 74 AVL-Bäume Definition (AVL-Baum) Ein höhenbalancierter binärer Suchbaum heisst AVL-Baum (Adelson-Velskii und Landis 1962). Der Balancefaktor muss zusätzlich zu dem Schlüssel-Wert-Paar in jedem Knoten gespeichert werden. Die Hoffnung hinter den Höhenbalancierung ist, dass die resultierenden Bäume nicht zu tief sind. atsächlich hat ein AVL-Baum mit n inneren Knoten höchstens logarithmische iefe. U Ilmenau Seite 10 / 74

6 Die iefe von AVL-Bäumen Satz Ist ein höhenbalancierter Binärbaum mit n Knoten, so gilt d() 1, 4405 log n. D.h. höhenbalancierte Bäume sind höchstens um den Faktor 1,4405 tiefer als vollständig balancierte Bäume mit gleicher Knotenzahl. Beweisidee: Wir werden zeigen, dass ein AVL-Baum der iefe d exponentiell viele Knoten haben muss. Genauer gesagt existiert eine Konstante C > 1 mit log C 2 1, 4405 und ein AVL-Baum der iefe d enthält mindestens C d Knoten. U Ilmenau Seite 11 / 74 Die iefe von AVL-Bäumen Beweis Für d N sei N(d) die minimale Zahl innerer Knoten in einem AVL-Baum die iefe d. N(0) = 1 N(1) = 2... U Ilmenau Seite 12 / 74

7 Die iefe von AVL-Bäumen Beweis (Fortsetzung) Behauptung 1: N(d) = 1 + N(d 1) + N(d 2) für d 2 N(d 1) N(d 2) Damit der höhenbalancierte Baum die iefe d hat, muss mindestens einer seiner Unterbäume iefe d 1 haben. Aus der Balancierung folgt dann, dass der andere Unterbaum mindestens iefe d 2 hat. Außerdem müssen beide Unterbäume selbst minimale Knotenzahl haben. Damit hat der tiefere Baum N(d 1) Knoten und der flachere Baum N(d 2) Knoten. Damit ist Behauptung 1 gezeigt.... U Ilmenau Seite 13 / 74 Die iefe von AVL-Bäumen Beweis (Fortsetzung) Diese Ungleichung legt exponentielles Wachstum nahe. Behauptung 2: N(d) C d für d 0 wobei C = 1 2 (1 + 5) 1, (goldener Schnitt) Wir beweisen die Behauptung 2 mittels Induktion. Induktionsanfang: Für d = 0 gilt N(0) = 1 = C 0. Für d = 1 gilt N(1) = 2 > C.... U Ilmenau Seite 14 / 74

8 Die iefe von AVL-Bäumen Beweis (Fortsetzung) Induktionsbehauptung: Für alle 0 i n 1 gilt N(i) C i. Induktionsschritt: N(d) = 1 + N(d 1) + N(d 2) 1 + C d 1 + C d 2 C d 2 (C + 1) Betrachtet man C = 1 2 (1 + 5) genauer, stellt man fest, dass C 2 = C + 1 gilt. Das führt zu N(d) C d 2 C 2 = C d, was die Behauptung beweist.... U Ilmenau Seite 15 / 74 Die iefe von AVL-Bäumen Beweis (Fortsetzung) Ist ein höhenbalancierter Baum der Höhe d() 0 mit n Knoten, so folgt aus C d() n d() log C (n) = log C (2) log(n). Es gilt log C(2) = ln2/lnc = 1, was den Beweis des Satzes abschließt. U Ilmenau Seite 16 / 74

9 Implementierung Es müssen noch Implementierungen von delete und insert beschrieben werden, die die Höhenbalancierung erhalten. Jeder einzelne Baumknoten enthält fünf Einträge. Den Schlüssel x die Daten d einen Zeiger left auf das linke Kind einen Zeiger right auf das rechte Kind den Balancefaktor bal. x d left bal right U Ilmenau Seite 17 / 74 Implementierung empty() : lookup(, x) : Erzeuge einen NULL-Zeiger Wie bei einem gewöhnlichen BSB AVL insert und AVL delete bestehen aus zwei Phasen: In der ersten Phase werden die üblichen Operationen wie auf einem BSB ausgeführt. In der zweiten Phase müssen die Bäume unter Umständen rebalanciert werden. Die Rebalancierung erfolgt dabei rekursiv. U Ilmenau Seite 18 / 74

10 Hilfsoperationen Die Rechtsrotation Die Rechtsrotation kippt eine Kante nach rechts. y v u x u x 3 1 y v U Ilmenau Seite 19 / 74 Hilfsoperationen Die Rechtsrotation y v u x u x 3 1 y v Ist ein binärer Suchbaum, so auch. Beweis: Da ein BSB ist, gilt für alle v i i key(v 1 ) x key(v 2 ) y key(v 3 ). Das zeigt auch die Suchbaumeigenschaft für U Ilmenau Seite 20 / 74

11 Hilfsoperationen Die Rechtsrotation y v u x u x 3 1 y v Änderungen: Rechtes Kind von u und linkes Kind von v 1 wird hochgezogen 3 wird abgesenkt U Ilmenau Seite 21 / 74 Hilfsoperationen Die Rechtsrotation rotater(v) u = left(v); left(v) = right(u); right(u) = v; return u; Achtung! Die Balancefaktoren in u und v müssen noch korrigiert werden! U Ilmenau Seite 22 / 74

12 Hilfsoperationen Die Linksrotation Die Linksrotation kippt eine Kante nach links. v y x u 3 x u v y U Ilmenau Seite 23 / 74 Hilfsoperationen Die Doppelrotationen Die Links-Rechts-Doppelrotation kann auf einen Links-Rechts-Weg angewandt werden. z v z v y w u x y w u x z v y w u x Erst eine Linksrotation an der unteren Kante Dann eine Rechtsrotation an der oberen Kante U Ilmenau Seite 24 / 74

13 Hilfsoperationen Die Links-Rechts-Doppelrotation z v y w x u x u z v y w Effekt: Der unterste Knoten des Lnks-Rechts-Weges wandert nach oben und wird Wurzel des eilbaumes. Die beiden anderen Knoten des Weges werden sein linkes und rechtes Kind. U Ilmenau Seite 25 / 74 Hilfsoperationen Die Links-Rechts-Doppelrotation rotatelr(v) u = left(v); w = right(u); right(u) = left(w); left(v) = right(w); left(w) = u; right(w) = v; return w; Achtung! Die Balancefaktoren in u und v müssen noch korrigiert werden! U Ilmenau Seite 26 / 74

14 Die Rechts-Links-Doppelrotation Die Rechts-Links-Doppelrotation ist symmetrisch zur Links-Rechts-Doppelrotation. z v y w x u z v x u 1 y w U Ilmenau Seite 27 / 74 Ein Beispiel D Links P Links Rechts P A P D S B S B F S A F R A D R R B F Rechts D Rechts Links B B P A P A F S D S R F R U Ilmenau Seite 28 / 74

15 Einfügen in AVL-Bäume Die Implementierung von AVL insert für AVL-Bäume besteht aus zwei Phasen: Das neue Schlössel-Wert-Paar wird wie in einen gewöhnlichen binären Suchbaum eingefügt. Anschließend wird die Balancierung geprüft. Wenn die Balancierung nirgendwo verletzt wird, geschieht nichts Wenn die Balancierungsbedingung irgendwo verletzt ist, gibt es auf dem Weg vom neuen Knoten zur Wurzel (nur dort kann die Verletzung auftreten) einen tiefsten Knoten v, an dem dies der Fall ist. An v wird eine Einfach- oder Doppelrotation ausgeführt und dadurch die Balancierung wieder hergestellt. U Ilmenau Seite 29 / 74 Ein Beispiel Wir fügen 1, 3, 9, 11, 12, 10, 2, 6, 4, 7, 0 in einen anfänglich leeren AVL-Baum ein Links 11 Links U Ilmenau Seite 30 / 74

16 Ein Beispiel Rechts Links U Ilmenau Seite 31 / 74 Ein Beispiel Links Rechts U Ilmenau Seite 32 / 74

17 Ein Beispiel R L U Ilmenau Seite 33 / 74 Ein Beispiel Links U Ilmenau Seite 34 / 74

18 Ein Beispiel Rechts U Ilmenau Seite 35 / 74 Einfügen in AVL-Bäume Problem Wie wird entschieden, welche Rotation die Balancierung wieder herstellt? Es soll weder die globale Sicht verwendet werden, noch soll das Balancieren durch Hinschauen bzw. Ausprobieren erreicht werden. Benutzt werden dürfen : Die Balancefaktoren bal(v) in jedem Knoten Ein Flag deeper, das als Resultat eines rekursiven Aufrufs mitteilt, ob der bearbeitete Unterbaum tiefer geworden ist. Die Entscheidung, welche Rotation durchgeführt wird, wird an Hand dieser Werte gefällt. U Ilmenau Seite 36 / 74

19 Einfügen in AVL-Bäume AVL insert(, x, r) Eingabe: AVL-Baum, Schlüssel x und Daten r; Ausgabe: AVL-Baum und ein Boolean deeper; if == NULL then = new AVL ree(x, r); return (,true); end if! = NULL and key() == x then data() = r; return (, false); end // Neuer Knoten // Update (... ) U Ilmenau Seite 37 / 74 Einfügen in AVL-Bäume AVL insert(, x, r) Fortsetzung if! = NULL and key() > x then (left(), left deeper) = AVL insert(left(), x, r); end // links einfügen // Einfügen (, deeper) = RebalanceInsLeft(, left deeper); // Rebalancierung von else if! = NULL and key() < x then // rechts einfügen (right(), right deeper) = AVL insert(right(), x, r); // Einfügen (, deeper) = RebalanceInsRight(, right deeper); // Rebalancierung von end return,deeper; U Ilmenau Seite 38 / 74

20 Einfügen in AVL-Bäume Wie man sieht, wird der neue Schlüssel erst eingefügt, und dann auf dem Rückweg zur Wurzel wieder Rebalanciert. Dadurch fängt man immer beim untersten unbalancierten Knoten an und wandert aufwärts. Es bleibt festzustellen, welche Situationen auftreten können und wie sie gelöst werden. Wir konzentrieren uns im folgenden auf den Fall, dass der neue Knoten in den linken Unterbaum eingefügt wird. Für den rechten Unterbaum ist das Vorgehen symmetrisch. U Ilmenau Seite 39 / 74 Einfügen in AVL-Bäume 1. Fall: left deeper = false, d.h. der linke Unterbaum wurde nicht tiefer. geändert, aber gleiche Höhe Da sich auch die iefe des rechten Unterbaumes nicht geändert hat (er hat sich gar nicht geändert), ist der Knoten weiterhin balanciert. Da der eilbaum die iefe nicht verändert hat: deeper = false U Ilmenau Seite 40 / 74

21 Einfügen in AVL-Bäume 2. Fall: left deeper = true und bal() = 0, d.h. der linke Unterbaum wurde tiefer und die Unterbäume hatten gleiche iefe. neu Da sich die iefen der beiden Unterbäume nur um eins unterscheiden, bleibt der Baum balanciert. deeper = true und bal() = 1 U Ilmenau Seite 41 / 74 Einfügen in AVL-Bäume 3. Fall: left deeper = true und bal() = 1, d.h. der linke Unterbaum wurde tiefer und der rechte Unterbaum war um eins tiefer, als der linke. neu Da sich die iefen der beiden neuen Unterbäume nicht unterscheiden, ist der Baum balanciert. deeper = false und bal() = 0 U Ilmenau Seite 42 / 74

22 Einfügen in AVL-Bäume 4. Fall: left deeper = true und bal() = 1, d.h. der linke Unterbaum wurde tiefer und der linke Unterbaum war um eins tiefer, als der linke. neu Die Höhen der beiden Unterbäume unterscheiden sich um 2. Damit ist der Baum unbalanciert. Frage Was nun??? U Ilmenau Seite 43 / 74 Einfügen in AVL-Bäume Fall 4.1.: left deeper = true und bal() = 1 und bal(left()) = 1 Rechtsrotation 1 1 1,1 neu 1,2 2 1,1 neu 1,2 2 Die Rechtsrotation zieht den linken Unterbaum eine Ebene hoch und senkt den rechten eine Ebene ab. deeper = false und bal( 1 ) = 0 und bal() = 0 und die neue Wurzel ist 1. U Ilmenau Seite 44 / 74

23 Einfügen in AVL-Bäume Fall 4.2.: left deeper = true und bal() = 1 und bal(left()) = 1 Links Rechts 1, ,2 1,1 neu neu 2 1,1 neu neu 2 Die Links-Rechts-Rotation zieht die mittleren Unterbäume eine Ebene hoch und senkt den rechten eine Ebene ab. deeper = false und die neuen Balancefaktoren wie folgt. U Ilmenau Seite 45 / 74 Einfügen in AVL-Bäume Neue Balancierung hängt von der Balancierung von 1,2 = right(left()) ab. Links Rechts 1, ,2 1,1 neu neu 2 1,1 neu neu 2 Falls bal( 1,2 ) = 0 haben und dieselbe iefe, wie 1,1 und 2. bal( 1 ) = 0 und bal() = 0 und bal( 1,2 ) = 0 U Ilmenau Seite 46 / 74

24 Einfügen in AVL-Bäume 1 Links Rechts 1,2 1 1,2 1,1 neu 2 1,1 neu 2 Falls bal( 1,2 ) = 1 bal( 1 ) = 0 und bal() = 1 und bal( 1,2 ) = 0 U Ilmenau Seite 47 / 74 Einfügen in AVL-Bäume 1 Links Rechts 1,2 1 1,2 1,1 neu 2 1,1 neu 2 Falls bal( 1,2 ) = 1 bal( 1 ) = 1 und bal() = 0 und bal( 1,2 ) = 0 U Ilmenau Seite 48 / 74

25 Einfügen in AVL-Bäume Insgesamt ergibt sich die folgende abelle für den Fall 4.2.: bal(right(left()) bal( ) bal(left( )) bal(right( )) Dabei ist die ursprüngliche Wurzel des eilbaumes und die neue Wurzel. Das Ergebnis hängt also vom Balancefaktor von right(left()) vor der Rotation, aber nach dem Einfügen ab! U Ilmenau Seite 49 / 74 Einfügen in AVL-Bäume Faustregel für das Rotieren Wenn ein äußerer eilbaum zu tief wird hilft eine einfache Rotation. Diese hebt den eilbaum um eine Ebene an. Wenn ein mittlerer eilbaum zu tief wird hilft eine Doppelrotation. Diese hebt den mittleren eilbaum um eine Ebene an. Die rekursive Abarbeitung rebalanciert von unten nach oben. Beobachtung Nach dem ersten Auftreten des 4. Falles, gilt stets deeper = false und somit findet keine weitere Rebalancierung statt. U Ilmenau Seite 50 / 74

26 Einfügen in AVL-Bäume Lemma Die rekursive Prozedur AVL insert(, x, r) führt auf AVL-Bäumen die Wörterbuchoperation insert korrekt durch. AVL insert hat Laufzeit O(log n) und führt höchstens eine Einfach- oder Doppelrotation durch. U Ilmenau Seite 51 / 74 Löschen aus AVL-Bäumen Das Löschen in AVL-Bäumen läuft im Prinzip ähnlich ab, wie das Einfügen: Der Eintrag wird wie in gewöhnlichen binären Suchbäumen gelöscht. Der Baum wird anschließend von unten nach oben rebalanciert. Statt eines deeper-flags benutzen wir aber ein shallower-flag, das anzeigt, ob der Baum flacher geworden ist. U Ilmenau Seite 52 / 74

27 Löschen aus AVL-Bäume Wenn der Knoten mit den zu löschenden Schlüssel x gefunden ist, können drei Fälle eintreten. Fall 1: Der Knoten hat keinen linken Unterbaum, d.h. left() = NULL. 2 Dann kann man einfach den rechten eilbaum zurückgeben. shallower = true U Ilmenau Seite 53 / 74 Löschen aus AVL-Bäume Fall 2: Der Knoten hat keinen rechten Unterbaum, d.h. right() = NULL. 1 Dann kann man einfach den linken eilbaum zurückgeben. shallower = true U Ilmenau Seite 54 / 74

28 Löschen aus AVL-Bäume Fall 3: Der Knoten hat beide Unterbäume. 1 2 Wie bei gewöhnlichen binären Suchbäumen löscht man in diesem Fall den kleinsten Schlüssel aus dem rechten Unterbaum und verschiebt ihn stattdessen in die Wurzel. Ob der Baum flacher wird hängt dabei von der Postion des minimalen Schlüssels im rechten Unterbaum ab. U Ilmenau Seite 55 / 74 Löschen aus AVL-Bäume AVL delete(, x, r) Eingabe: AVL-Baum, Schlüssel x; Ausgabe: AVL-Baum und ein Boolean shallower; if == NULL then return (, false); end // nicht vorhanden if! = NULL and key() > x then // Update (left(), left shallower) = AVL delete(left(), x); (, shallower) = RebalanceDelLeft(, left shallower); return (, shallower); end (... ) U Ilmenau Seite 56 / 74

29 Löschen aus AVL-Bäumen AVL delete(, x, r) Fortsetzung if! = NULL and key() < x then // Update (right(), right shallower) = AVL delete(right(), x); (, shallower) = RebalanceDelRight(, right shallower); return (, shallower); end if! = NULL and key() == x then if left() == NULL then return (right(),true); // Entferne Wurzel if right() == NULL then return (left(),true); (right(), x, r,right shallower) = AVL deletemin(); key() = x, data() = r; return RebalanceDelRight(, right shallower); end U Ilmenau Seite 57 / 74 Extraktion des Minimums Die Prozedur AVL deletemin() hat vier Rückgabewerte (S, x, r,shallower): S ist der resultierende AVL-Baum nach dem Löschen des Minimums x und r sind die Werte des gelöschten minimalen Schlüssel-Wert-Paares shallower gibt an, ob der Baum durch das Löschen flacher geworden ist. Um das Minimum zu finden, müssen wir wie in gewöhnlichen binären Suchbäumen immer nach links gehen, bis es kein linkes Kind mehr gibt. D.h. wir müssen zwei Fälle bezglüch left() unterscheiden. U Ilmenau Seite 58 / 74

30 Extraktion des Minimums Fall 1: left() = NULL, d.h. enthält das Minimum. In diesem Fall können wir einfach den rechten eilbaum als Wurzel zurückgeben. S = right() und x = key() und r = data() und shallower = true. Fall 2: left() NULL In dieser Situation müssen wir das Minimum im linken Unterbaum löschen und anschließend Rebalancieren. (S, x, r,left shallower) = AVL deletemin(left()); (S, shallower) = RebalanceDelLeft(, left shallower); return (S, x, r,shallower); U Ilmenau Seite 59 / 74 Die Rebalancierung nach dem Löschen Wir beschränken uns wieder auf den Fall, dass das Element im linken Unterbaum gelöscht wurde. Für den rechten Unterbaum ergibt der Algorithmus durch Spiegelung. Löschen U Ilmenau Seite 60 / 74

31 Die Rebalancierung nach dem Löschen Fall 1: Falls left shallower = false ändert sich auch die iefe und die Balancierung von nicht, d.h. shallower = false Fall 2: Falls left shallower = true und bal() = 1 wurde der Linke eilbaum flacher und die Balancierung ändert sich. shallower = true und bal() = 0 U Ilmenau Seite 61 / 74 Die Rebalancierung nach dem Löschen Fall 3: Falls left shallower = true und bal() = 0 wurde der Linke eilbaum flacher und die Balancierung ändert sich. shallower = false und bal() = 1 U Ilmenau Seite 62 / 74

32 Die Rebalancierung nach dem Löschen Fall 4: Falls left shallower = true und bal() = 1 wurde der Linke eilbaum flacher und die Balancierung ändert sich. shallower = false Der Baum muss je nach Form des rechten Unterbaumes rebalanciert werden. U Ilmenau Seite 63 / 74 Die Rebalancierung nach dem Löschen Fall 4.1: bal(right()) = 0 S Links S 1 1 2,1 2,2 2,1 2,2 bal() = 1 und bal(s) = 1 und shallower = false U Ilmenau Seite 64 / 74

33 Die Rebalancierung nach dem Löschen Fall 4.1: bal(right()) = 1 S Links S 1 2,1 2,2 1 2,1 2,2 bal() = 0 und bal(s) = 0 und shallower = true U Ilmenau Seite 65 / 74 Die Rebalancierung nach dem Löschen Fall 4.1: bal(right()) = 1 S 1 2,1 2,2 Der mittlere Baum muss angehoben werden. Damit erfolgt eine Doppelrotation. U Ilmenau Seite 66 / 74

34 Die Rebalancierung nach dem Löschen Fall 4.1: bal(right()) = 1 R S Links Rechts R S 1 2,1 2,1 2,2 1 2,1 2,1 2,2 shallower = true Die Balancefaktoren müssen in Abhängigkeit von bal(r) angepasst werden. alt neu bal(r) bal(r) bal() bal(s) U Ilmenau Seite 67 / 74 Löschen in AVL-Bäumen Lemma Die Prozedure AVL delete führt die Wörterbuchoperation delete korrekt durch. D.h. es entsteht wieder ein AVL-Baum. Die Prozedur hat Laufzeit O(log n) und führt an jedem Knoten auf dem Weg von der Wurzel zum gelöschten Knoten höchstens eine Einfach- oder Doppelrotation aus. Satz In AVL-Bäumen kostet jede Wörterbuchoperation Zeit O(log n), wobei n die Anzahl der Wörterbucheinträge ist. U Ilmenau Seite 68 / 74

35 Ein Beispiel Im Gegensatz zum Einfügen, kann das Löschen eines Knotens zu mehreren Einfach- und Doppel-Rotationen führen. U Ilmenau Seite 70 / 74 Ein Beispiel Im Gegensatz zum Einfügen, kann das Löschen eines Knotens zu mehreren Einfach- und Doppel-Rotationen führen. U Ilmenau Seite 71 / 74

36 Ein Beispiel Im Gegensatz zum Einfügen, kann das Löschen eines Knotens zu mehreren Einfach- und Doppel-Rotationen führen. U Ilmenau Seite 72 / 74 Ein Beispiel Im Gegensatz zum Einfügen, kann das Löschen eines Knotens zu mehreren Einfach- und Doppel-Rotationen führen. U Ilmenau Seite 73 / 74

SS11 Algorithmen und Datenstrukturen 4. Kapitel Suchbäume

SS11 Algorithmen und Datenstrukturen 4. Kapitel Suchbäume SS11 Algorithmen und Datenstrukturen 4. Kapitel Suchbäume Martin Dietzfelbinger Mai 2011 FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS11 Kapitel 4 4.1 Binäre Suchbäume Binäre Suchbäume implementieren

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

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

SS16 Algorithmen und Datenstrukturen 4. Kapitel Suchbäume

SS16 Algorithmen und Datenstrukturen 4. Kapitel Suchbäume SS16 Algorithmen und Datenstrukturen 4. Kapitel Suchbäume Martin Dietzfelbinger April/Mai 2016 FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS16 Kapitel 4 4.1 Binäre Suchbäume Binäre Suchbäume

Mehr

SS17 Algorithmen und Datenstrukturen 4. Kapitel Suchbäume

SS17 Algorithmen und Datenstrukturen 4. Kapitel Suchbäume SS17 Algorithmen und Datenstrukturen 4. Kapitel Suchbäume Martin Dietzfelbinger April/Mai 2017 FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS17 Kapitel 4 4.1 Binäre Suchbäume Binäre Suchbäume

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

WS18 Algorithmen und Datenstrukturen 1 4. Kapitel Suchbäume

WS18 Algorithmen und Datenstrukturen 1 4. Kapitel Suchbäume WS18 Algorithmen und Datenstrukturen 1 4. Kapitel Suchbäume Martin Dietzfelbinger November 2018 FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 4.1 Binäre Suchbäume Binäre Suchbäume

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

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

Kap. 4.2 Binäre Suchbäume ff Kap. 4.3: AVL-Bäume Kap. 4.2 Binäre Suchbäume ff Kap. 4.3: AVL-Bäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 12./13. VO DAP2 SS 2009 28.5./2.6.2009 1 Motivation Warum soll

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

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

Algorithmen und Datenstrukturen SS09

Algorithmen und Datenstrukturen SS09 Foliensatz 9 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 2009 TU Ilmenau Seite / 63 Wörterbücher TU Ilmenau Seite 2 / 63 Wörterbücher Ein Wörterbuch

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

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

Datenstrukturen Teil 3. Traversierung und AVL- Bäume. Traversierung. Traversierung. Traversierung

Datenstrukturen Teil 3. Traversierung und AVL- Bäume. Traversierung. Traversierung. Traversierung Traversierung Datenstrukturen Teil 3 Traversierung und AVL- Bäume Traversierung: bezeichnet verschiede Verfahren einer Routenbestimmung durch baumförmige Graphen Dabei wird jeder Knoten und jede Kante

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

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

Umstrukturierung durch Rotationen

Umstrukturierung durch Rotationen Umstrukturierung durch Rotationen (Folie 109, Seite 52 im Skript) P P T A A D B T B C C D Eine Rechtsrotation um T. Die Suchbaumeigenschaft bleibt erhalten. B, C, D können nur aus externen Knoten bestehen.

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

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

B6.1 Introduction. Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B6.1 Introduction. B6.3 Analyse. B6.4 Ordnungsbasierte Methoden

B6.1 Introduction. Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B6.1 Introduction. B6.3 Analyse. B6.4 Ordnungsbasierte Methoden Algorithmen und Datenstrukturen 11. April 2018 B6. Binäre Suchbäume a Algorithmen und Datenstrukturen B6. Binäre Suchbäume 1 Marcel Lüthi and Gabriele Röger Universität Basel 11. April 2018 a Folien basieren

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

Algorithmen und Datenstrukturen Balancierte Suchbäume

Algorithmen und Datenstrukturen Balancierte Suchbäume Algorithmen und Datenstrukturen Balancierte Suchbäume Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Einführung Einfügen und Löschen Einfügen

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

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

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

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

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

5 Bäume. 5.1 Suchbäume. ein geordneter binärer Wurzelbaum. geordnete Schlüsselwertmenge. heißt (schwach) sortiert, g.d.w. gilt: 5 Bäume 5.1 Suchbäume Sei ein geordneter binärer Wurzelbaum. Sei Abbildung der Knotenmenge eine in eine vollständig geordnete Schlüsselwertmenge. heißt (schwach) sortiert, g.d.w. gilt: Falls sortiert ist,

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 13 (18.6.2014) Binäre Suchbäume IV (Rot Schwarz Bäume) Algorithmen und Komplexität Rot Schwarz Bäume Ziel: Binäre Suchbäume, welche immer

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

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

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

Tutoraufgabe 1 (Vollständige Induktion):

Tutoraufgabe 1 (Vollständige Induktion): für Informatik Prof. aa Dr. Ir. Joost-Pieter Katoen Tutoriumslösung - Übung 5 (Abgabe..0) Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe 1 (Vollständige Induktion):

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

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

10. Wiederholung Natürliche Suchbäume und Heaps

10. Wiederholung Natürliche Suchbäume und Heaps Wörterbuchimlementationen. Wiederholung Natürliche Suchbäume und Heas [Ottman/Widmayer, Ka..,.1, Cormen et al, Ka. 6, 1.1-1.] Hashing: Imlementierung von Wörterbüchern mit erwartet sehr schnellen Zugriffszeiten.

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

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

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 11 (1.6.2016) Binäre Suchbäume III Algorithmen und Komplexität Tiefe eines binären Suchbaums Worst-Case Laufzeit der Operationen in binären

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

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

Beweis: Die obere Schranke ist klar, da ein Binärbaum der Höhe h höchstens Beweis: Die obere Schranke ist klar, da ein Binärbaum der Höhe h höchstens h 1 2 j = 2 h 1 j=0 interne Knoten enthalten kann. EADS 86/600 Beweis: Induktionsanfang: 1 ein AVL-Baum der Höhe h = 1 enthält

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

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

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

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

Suchbäume. Suchbäume. Einfügen in Binären Suchbäumen. Suchen in Binären Suchbäumen. Prinzip Suchbaum. Algorithmen und Datenstrukturen 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

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

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

2 i. i=0. und beweisen Sie mittels eines geeigneten Verfahrens die Korrektheit der geschlossenen Form. für Informatik Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Vollständige Induktion): Finden Sie eine geschlossene Form für die

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

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

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

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

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

Binärbäume: Beispiel

Binärbäume: Beispiel Binärbäume Als Beispiel für eine interessantere dynamische Datenstruktur sehen wir uns jetzt Binärbäume an Ein Binärbaum wird rekursiv definiert: Er ist leer oder besteht aus einem Knoten (die Wurzel des

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

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

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 217 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Graphen, Suchbäume, AVL Bäume Heute: Graphen und Bäume Binäre Suchbäume AVL-Bäume Nächste

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

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

Informatik II, SS 2018

Informatik II, SS 2018 Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 15b (13.06.2018) Graphenalgorithmen IV Algorithmen und Komplexität Prims MST-Algorithmus A = while A ist kein Spannbaum do e = u, v ist

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

4.2 Fibonacci-Heaps Aufbau Potenzialfunktion. Knoten v hat folgende Felder:

4.2 Fibonacci-Heaps Aufbau Potenzialfunktion. Knoten v hat folgende Felder: 4.2 Fibonacci-Heaps 4.2.1 Aufbau Knoten v hat folgende Felder: Vaterzeiger p(v) Zeiger auf linkes Geschwister: prev(v) Zeiger auf rechtes Geschwister: next(v) Kindzeiger: child(v) Schlüssel: key: aus U

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

Algorithmen und Datenstrukturen 7. Vorlesung

Algorithmen und Datenstrukturen 7. Vorlesung Algorithmen und Datenstrukturen 7. Vorlesung Martin Dietzfelbinger 23. Mai 2005 v h h v, v,2 2 bal(v) = h 2 h {, 0, }. Definition Ein höhenbalancierter binärer Suchbaum heißt AVL-Baum. FG KuEA, U Ilmenau

Mehr

Klausur Algorithmen und Datenstrukturen SS August Arbeitszeit 90 min

Klausur Algorithmen und Datenstrukturen SS August Arbeitszeit 90 min TU Ilmenau, Fakultät für Informatik und Automatisierung FG Komplexitätstheorie und Effiziente Algorithmen Univ.-Prof. Dr. M. Dietzfelbinger, Dipl.-Ing. C. Mattern Klausur Algorithmen und Datenstrukturen

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

Datenstrukturen und Algorithmen (SS 2013)

Datenstrukturen und Algorithmen (SS 2013) Datenstrukturen und Algorithmen (SS 20) Übungsblatt 8 Abgabe: Montag, 24.06.20, 14:00 Uhr Die Übungen sollen in Gruppen von zwei bis drei Personen bearbeitet werden. Schreiben Sie die Namen jedes Gruppenmitglieds

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

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

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

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

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

9.4 Binäre Suchbäume. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen 9.4 Binäre Suchbäume Erweiterung: Einfügen an der Wurzel Standardimplementierung: Der neue Schlüssel wird am Ende des Suchpfades angefügt (natürlich, weil zuerst festgestellt werden muss, ob der Schlüssel

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

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

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

14. Rot-Schwarz-Bäume

14. Rot-Schwarz-Bäume 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).

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

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

3.6 AVL-Bäume. (AVL = Adel son-velskii und Landis (1962)) . Seite 326/726 3.6 VL-Bäume (VL = del son-velskii und Landis (1962)) 2-3-Bäume... sind Basis der B-Bäume, sind gut auf eitere Operationen ereiterbar (SPLIT, CONCTENTE), haben Worstcase-Zeiten on O(log n), aber sie nuten

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

markiert, 0: unmarkiert.)

markiert, 0: unmarkiert.) 4.2 Fibonacci-Heaps Fibonacci-Heaps (F-Heaps) implementieren adressierbare Priority Queues (siehe Anfang von Kap. 4). Wie bei Binomialheaps besteht der Heap aus heapgeordneten Bäumen, jedoch mit gelockerten

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

Dies ist gerade der konstruktive Schritt beim Aufbau von Binomialbäumen.

Dies ist gerade der konstruktive Schritt beim Aufbau von Binomialbäumen. Linken von Bäumen: Zwei Bäume desselben Wurzel-Rangs werden unter Einhaltung der Heap-Bedingung verbunden. Sind k 1 und k 2 die Wurzeln der zwei zu linkenden Bäume, so wird ein neuer Baum aufgebaut, dessen

Mehr

Informatik II, SS 2018

Informatik II, SS 2018 Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 10 (28.5.2018) Binäre Suchbäume II Algorithmen und Komplexität Binäre Suchbäume Binäre Suchbäume müssen nicht immer so schön symmetrisch

Mehr

14. Sortieren II Heapsort. Heapsort. [Max-]Heap 7. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften

14. Sortieren II Heapsort. Heapsort. [Max-]Heap 7. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften Heapsort, Quicksort, Mergesort 14. Sortieren II 14.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 397 398 Heapsort [Max-]Heap 7 Inspiration von Selectsort: Schnelles Einfügen Binärer Baum

Mehr

Übung 4: Die generische Klasse AvlBaum in Java 1

Übung 4: Die generische Klasse AvlBaum in Java 1 Übung 4: Die generische Klasse AvlBaum in Java 1 Ein binärer Suchbaum hat die AVL -Eigenschaft, wenn sich in jedem Knoten sich die Höhen der beiden Teilbäume höchstens um 1 unterscheiden. Diese Last (

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

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

Wintersemester 2007/2008 Helmut Seidl Institut für Informatik TU München Informatik 1 Wintersemester 2007/2008 Helmut Seidl Institut für Informatik TU München 1 Anwendung: Schreibtisch Operation: insert(task) 2 Anwendung: Schreibtisch An uns wird Arbeit delegiert... Operation:

Mehr

Grundlagen der Informatik / Algorithmen und Datenstrukturen. Aufgabe 143

Grundlagen der Informatik / Algorithmen und Datenstrukturen. Aufgabe 143 Aufgabe 143 Aufgabe 143 Aufgabenstellung Gegeben ist der folgende AVL-Baum: a) Fügen Sie in diesen AVL-Baum nacheinander Knoten mit den Inhalten 34, 42, 1701 und 30 ein. Führen Sie die ggf. notwendigen

Mehr

Datenstrukturen und Algorithmen. Vorlesung 14

Datenstrukturen und Algorithmen. Vorlesung 14 Datenstrukturen und Algorithmen Vorlesung 14 Inhaltsverzeichnis Vorige Woche: Binäre Suchbäume AVL Bäume Heute betrachten wir: AVL Bäume Prüfung AVL Bäume Definition: Ein AVL (Adelson-Velskii Landis) Baum

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

Einführung in die Programmierung II. 9. Dynamische Datenstrukturen: Binärbäume

Einführung in die Programmierung II. 9. Dynamische Datenstrukturen: Binärbäume -1- Einführung in die Programmierung II 9. Dynamische Datenstrukturen: Binärbäume Thomas Huckle, Stefan Zimmer 20. 6. 2007 Binärbäume Als Beispiel für eine interessantere dynamische Datenstruktur sehen

Mehr

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:

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: 2.2 Rot-Schwarz-Bäume Definition 15 Rot-Schwarz-Bäume sind externe Binärä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 (durchgezogene

Mehr

Algorithmen und Datenstrukturen Suchbaum

Algorithmen und Datenstrukturen Suchbaum Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 217 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Graphen und Bäume 2. Binäre Suchbäume 3. AVL-Bäume 4. Algorithmen und Datenstrukturen 2 Agenda

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

Ü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

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