Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Binärer Suchbaum IV AVL-Baum I

Ähnliche Präsentationen


Präsentation zum Thema: "Binärer Suchbaum IV AVL-Baum I"—  Präsentation transkript:

1 Binärer Suchbaum IV AVL-Baum I
Diskrete Mathematik I Vorlesung 8 Binärer Suchbaum IV AVL-Baum I

2 Durchlaufstrategien Preorder
1 Durchlaufstrategien Preorder Die Wurzel wird vor den Unterbäumen besucht, die Unterbäume werden von links nach rechts abgearbeitet Breitendurchlauf Mit einem Knoten werden seine Nachbarn von links nach rechts besucht

3 Durchlaufstrategie: Breitendurchlauf
2 Durchlaufstrategie: Breitendurchlauf 18 14 9 10 24 16 13 15 Warteschlange 16 A 26x

4 Durchlaufstrategie: Breitendurchlauf
2 Durchlaufstrategie: Breitendurchlauf 18 14 9 10 24 16 13 15 16 Ws 16 A 26x

5 Durchlaufstrategie: Breitendurchlauf
2 Durchlaufstrategie: Breitendurchlauf 18 14 9 10 24 16 13 15 16 Ws 10 24 A 26x

6 Durchlaufstrategie: Breitendurchlauf
2 Durchlaufstrategie: Breitendurchlauf 18 14 9 10 24 16 13 15 16 10 10 24 Ws A 26x

7 Durchlaufstrategie: Breitendurchlauf
2 Durchlaufstrategie: Breitendurchlauf 18 14 9 10 24 16 13 15 16 10 Ws 24 9 14 A 26x

8 Durchlaufstrategie: Breitendurchlauf
2 Durchlaufstrategie: Breitendurchlauf 18 14 9 10 24 16 13 15 16 10 24 24 9 Ws 14 A 26x

9 Durchlaufstrategie: Breitendurchlauf
2 Durchlaufstrategie: Breitendurchlauf 18 14 9 10 24 16 13 15 16 10 24 9 14 Ws 18 A 26x

10 Durchlaufstrategie: Breitendurchlauf
2 Durchlaufstrategie: Breitendurchlauf 18 14 9 10 24 16 13 15 16 10 24 9 9 14 Ws 18 A 26x

11 Durchlaufstrategie: Breitendurchlauf
2 Durchlaufstrategie: Breitendurchlauf 18 14 9 10 24 16 13 15 16 10 24 9 14 14 18 Ws A 26x

12 Durchlaufstrategie: Breitendurchlauf
2 Durchlaufstrategie: Breitendurchlauf 18 14 9 10 24 16 13 15 16 10 24 9 14 Ws 18 13 15 A 26x

13 Durchlaufstrategie: Breitendurchlauf
2 Durchlaufstrategie: Breitendurchlauf 18 14 9 10 24 16 13 15 16 10 24 9 14 18 18 13 Ws 15 A 26x

14 Durchlaufstrategie: Breitendurchlauf
2 Durchlaufstrategie: Breitendurchlauf 18 14 9 10 24 16 13 15 16 10 24 9 14 18 13 13 15 Ws A 26x

15 Durchlaufstrategie: Breitendurchlauf
2 Durchlaufstrategie: Breitendurchlauf 18 14 9 10 24 16 13 15 16 10 24 9 14 18 13 15 15 Ws A 26x

16 Durchlaufstrategie: Breitendurchlauf
2 Durchlaufstrategie: Breitendurchlauf 18 14 9 10 24 16 13 15 16 10 24 9 14 18 13 15 Ws A 26x

17 Durchlaufstrategie: Breitendurchlauf
3 Durchlaufstrategie: Breitendurchlauf class BST { ... void Breitendurchlauf() { SohnListe ws = new SohnListe(); Knoten aktuell; ws.FügeAn(wurzel); while ((aktuell = ws.Entferne()) != null) { System.out.println(aktuell.GibWert()); ws.FügeAn(aktuell.GibLinks()); ws.FügeAn(aktuell.GibRechts()); } Test auf Ende entferne A 2x

18 Breitendurchlauf: SohnElem
4 Breitendurchlauf: SohnElem knoten (statt int) class SohnElem { private Knoten wert; private SohnElem weiter; SohnElem(Knoten k) { wert = k; weiter = null; } void SetzeWert(Knoten k) { wert = k; } Knoten GibWert() { return wert; } void SetzeWeiter(SohnElem s) { weiter = s; } SohnElem GibWeiter() { return weiter; } }

19 Breitendurchlauf: SohnListe, FügeAn (hinten)
5 Breitendurchlauf: SohnListe, FügeAn (hinten) class SohnListe { private SohnElem kopf, fuß; Sohn Liste() {kopf = fuß = null;} void FügeAn(Knoten an) { SohnElem neu = new SohnElem(an); if (fuß != null) { fuß.SetzeWeiter(neu); fuß = neu; } else kopf = fuß = neu;

20 Breitendurchlauf: Entferne vorne
6 Breitendurchlauf: Entferne vorne . Knoten Entferne() { Knoten erster = null; if (kopf != null) { erster = kopf.GibWert(); kopf = kopf.GibWeiter(); if (kopf == null) fuss = null; } return erster;

21 Vergleich „Binäre Suchbäume“ - „Liste“
7 Vergleich „Binäre Suchbäume“ - „Liste“ in einem binären Suchbaum findet man schneller ein vorhandenes Objekt in einem binären Suchbaum stellt man schneller fest, daß ein Objekt nicht vorhanden ist warum? der Weg vom Kopf zur Wurzel ist im allgemeinen kürzer als der Weg vom Anfang zum Ende eine Liste (kann man das genauer, d. h. quantitativ angeben? später) es gibt aber auch ungünstige Fälle, wo der Baum aussieht wie eine Liste diese Fälle treten stets bei der iterativen Eingabe sortierter Elemente auf

22 Beispiele für den Aufbau binärer Suchbäume
8 Beispiele für den Aufbau binärer Suchbäume Eingabefolge 1-2-3 Eingabefolge 3-2-1 1 2 3 1 2 3 Eingabefolge oder 2-1-3 Eingabefolge 3-1-2 1 2 3 2 1 3 A 7x

23 AVL-Baum (Definition)
9 AVL-Baum (Definition) Ein binärer Baum heißt ausgeglichener Baum oder AVL-Baum (nach Adelson- Velskij und Landis), falls sich für jeden Knoten k die Höhen h der beiden Teilbäume um höchstens 1 unterscheiden.

24 10 AVL-Baum: Beispiel

25 Balancefaktor Balancefaktor bal(k)
11 Balancefaktor Balancefaktor bal(k) bal(k) = h(rechter Teilbaum von k) - h(linker Teilbaum von k) Für AVL-Bäume gilt: bal(k)

26 12 AVL-Baum: Beispiel +1 -1 +1 +1 A 2x

27 12 AVL-Baum: Beispiel +1 -1 +1 +1 A 2x

28 12 AVL-Baum: Beispiel +2 +1 +1 A 2x

29 Einfügen von Knoten +1 14 +1 8 20 3 11 17 33 26 39 Einfügen von k = 30
13 Einfügen von Knoten +1 14 Einfügen von k = 30 +1 8 20 3 11 17 33 26 39 A 36x

30 Einfügen von Knoten +1 14 +1 8 20 3 11 17 33 26 39 Einfügen von k = 30
13 Einfügen von Knoten +1 14 Einfügen von k = 30 +1 8 20 3 11 17 33 26 39 A 36x

31 Einfügen von Knoten +1 14 +1 8 20 3 11 17 33 26 39 Einfügen von k = 30
13 Einfügen von Knoten +1 14 Einfügen von k = 30 +1 8 20 3 11 17 33 26 39 A 36x

32 Einfügen von Knoten +1 14 +1 8 20 3 11 17 33 26 39 Einfügen von k = 30
13 Einfügen von Knoten +1 14 Einfügen von k = 30 +1 8 20 3 11 17 33 26 39 A 36x

33 Einfügen von Knoten +1 14 +1 8 20 3 11 17 33 26 39 Einfügen von k = 30
13 Einfügen von Knoten +1 14 Einfügen von k = 30 +1 8 20 3 11 17 33 26 39 A 36x

34 13 Einfügen von Knoten +1 14 Einfügen von k = 30 +1 8 20 3 11 17 33 26 39 30 A 36x

35 Einfügen von Knoten +1 14 +1 8 20 3 11 17 33 +1 26 39 30
13 Einfügen von Knoten +1 14 Einfügen von k = 30 +1 8 20 3 11 17 33 +1 26 39 30 A 36x

36 Einfügen von Knoten +1 14 +1 8 20 -1 3 11 17 33 +1 26 39 30
13 Einfügen von Knoten +1 14 Einfügen von k = 30 +1 8 20 -1 3 11 17 33 +1 26 39 30 A 36x

37 Einfügen von Knoten +1 14 +2 8 20 -1 3 11 17 33 +1 26 39 30
13 Einfügen von Knoten +1 14 Einfügen von k = 30 +2 8 20 -1 3 11 17 33 +1 Ausgeglichenheit ist verletzt 26 39 30 A 36x

38 Einfügen von Knoten +1 14 +2 8 20 -1 3 11 17 33 +1 26 39 30
13 Einfügen von Knoten +1 14 Einfügen von k = 30 +2 8 20 -1 3 11 17 33 +1 26 39 Ausbalancieren durch Rotation 30 A 36x

39 Einfügen von Knoten +1 14 +2 8 20 -1 3 11 17 33 +1 26 39 30
13 Einfügen von Knoten +1 14 Einfügen von k = 30 +2 8 20 -1 3 11 17 33 +1 26 39 R- Rotation 30 A 36x

40 Einfügen von Knoten +1 14 +2 8 20 -1 3 11 17 33 +1 26 39 30
13 Einfügen von Knoten +1 14 Einfügen von k = 30 +2 8 20 -1 3 11 17 33 +1 26 39 30 A 36x

41 Einfügen von Knoten +1 14 +2 8 20 -1 3 11 17 33 +1 26 39 30
13 Einfügen von Knoten +1 14 Einfügen von k = 30 +2 8 20 -1 3 11 17 33 +1 26 39 30 A 36x

42 13 Einfügen von Knoten +1 14 Einfügen von k = 30 +2 8 20 3 11 17 26 33 L- Rotation 30 39 A 36x

43 13 Einfügen von Knoten +1 14 Einfügen von k = 30 +2 8 20 3 11 17 26 33 30 39 A 36x

44 13 Einfügen von Knoten +1 14 Einfügen von k = 30 +2 8 20 3 11 17 26 33 30 39 A 36x

45 Einfügen von Knoten +1 14 8 26 3 11 20 33 17 30 39 Einfügen von k = 30
13 Einfügen von Knoten +1 14 Einfügen von k = 30 8 26 3 11 20 33 17 30 39 A 36x

46 Einfügen von Knoten +1 14 8 26 3 11 20 33 17 30 39 Einfügen von k = 30
13 Einfügen von Knoten +1 14 Einfügen von k = 30 8 26 3 11 20 33 17 30 39 A 36x

47 13 Einfügen von Knoten +1 14 8 26 3 11 20 33 17 30 39 A 36x

48 Löschen von Knoten +1 14 +1 8 20 3 11 17 33 26 39 Löschen von k = 8 A
+1 8 20 3 11 17 33 26 39 A 9x

49 Löschen von Knoten +1 14 +1 8 20 3 11 17 33 26 39 Löschen von k = 8 A
+1 8 20 3 11 17 33 26 39 A 9x

50 Löschen von Knoten +1 14 +1 8 20 3 11 17 33 26 39 Löschen von k = 8 A
+1 8 20 3 11 17 33 26 39 A 9x

51 Löschen von Knoten +1 14 -1 +1 11 20 3 17 33 26 39 Löschen von k = 8 A
3 17 33 26 39 A 9x

52 Löschen von Knoten +1 14 -1 +1 11 20 3 17 33 26 39 Löschen von k = 8 A
3 17 33 26 39 A 9x

53 Löschen von Knoten +1 14 -1 +1 11 20 3 17 33 26 39 Löschen von k = 8 A
3 17 33 26 39 A 9x

54 Löschen von Knoten +1 14 -1 +1 11 20 3 17 33 26 39 Löschen von k = 11
15 Löschen von Knoten +1 Löschen von k = 11 14 -1 +1 11 20 3 17 33 26 39 A 15x

55 Löschen von Knoten +1 14 -1 +1 11 20 3 17 33 26 39 Löschen von k = 11
15 Löschen von Knoten +1 Löschen von k = 11 14 -1 +1 11 20 3 17 33 26 39 A 15x

56 Löschen von Knoten +1 14 -1 +1 11 20 3 17 33 26 39 Löschen von k = 11
15 Löschen von Knoten +1 Löschen von k = 11 14 -1 +1 11 20 3 17 33 26 39 A 15x

57 Löschen von Knoten +1 14 +1 3 20 17 33 26 39 Löschen von k = 11 A 15x
+1 3 20 17 33 26 39 A 15x

58 Löschen von Knoten +2 14 +1 3 20 17 33 26 39 Löschen von k = 11
15 Löschen von Knoten +2 Löschen von k = 11 14 +1 3 20 17 33 L- Rotation 26 39 A 15x

59 Löschen von Knoten +2 14 +1 3 20 17 33 26 39 Löschen von k = 11 A 15x
+1 3 20 17 33 26 39 A 15x

60 Löschen von Knoten +2 14 +1 3 20 17 33 26 39 Löschen von k = 11 A 15x
+1 3 20 17 33 26 39 A 15x

61 15 Löschen von Knoten Löschen von k = 11 20 14 33 3 17 26 39 A 15x

62 15 Löschen von Knoten 20 14 33 3 17 26 39 A 15x

63 16 L-Rotation Knoten x wird eingefügt und verletzt dadurch die Ausgeglichenheit an einem höher gelegenen Knoten k1 Notwendige Korrektur durch L-Rotation (symmetrisch: R-Rotation): Umhängen von zwei Kanten

64 17 L-Rotation +1 k1 k2 T1 T2 T3 A 7x

65 17 L-Rotation +2 k1 +1 k2 T1 T2 T3 x A 7x

66 17 L-Rotation +2 k1 +1 k2 T1 T2 T3 x A 7x

67 17 L-Rotation +2 k1 +1 k2 T1 T2 T3 x A 7x

68 17 L-Rotation k2 k1 T3 T1 T2 x A 7x

69 18 LR-Rotation x wird eingefügt und verletzt dadurch die Ausgeglichenheit an einem höher gelegenen Knoten k1. Notwendige Korrektur durch LR- Rotation (symmetrisch: RL-, RR- und LL- Rotation): Umhängen von vier Kanten

70 19 LR-Rotation -1 k1 k2 T4 k3 T1 T2 T3 A 14x

71 19 LR-Rotation -2 k1 +1 k2 +1 T4 k3 T1 T2 T3 x A 14x

72 19 LR-Rotation -2 k1 T1 k2 x +1 T3 k3 T2 T4 A 14x

73 19 LR-Rotation -2 k1 T1 k2 x +1 T3 T4 k3 T2 A 14x

74 19 LR-Rotation -2 k1 +1 k2 +1 T4 k3 T1 T2 T3 x A 14x

75 19 LR-Rotation -2 k1 T1 k2 x -1 T3 k3 T2 T4 A 14x

76 19 LR-Rotation -2 k1 T1 k2 x -1 T3 T4 k3 T2 A 14x

77 19 LR-Rotation -2 k1 -1 k3 -1 k2 T4 T3 T1 T2 x A 14x

78 19 LR-Rotation k3 -1 k1 k2 T2 T3 T1 T4 x A 14x


Herunterladen ppt "Binärer Suchbaum IV AVL-Baum I"

Ähnliche Präsentationen


Google-Anzeigen