Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung 9 09.12.99 -Binärer Suchbaum III- -AVL-Baum-

Ähnliche Präsentationen


Präsentation zum Thema: "Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung 9 09.12.99 -Binärer Suchbaum III- -AVL-Baum-"—  Präsentation transkript:

1 Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Binärer Suchbaum III- -AVL-Baum-

2 2 Übersicht Binärer Suchbaum –Durchlaufstrategien Breitendurchlauf –SohnElem –SohnListe, FügeAn (hinten) –Entferne vorne –Beispiele für den Aufbau binärer Suchbäume

3 3 Übersicht (Fortsetzung) AVL-Baum –Definition –Balancefaktor –Einfügen von Knoten R-Rotation L-Rotation –Löschen von Knoten L-Rotation –Allgemein L-Rotation LR-Rotation

4 4 Binärer Suchbaum Ein binärer Baum B ist ein binärer Suchbaum, falls er leer ist oder die folgenden Eigenschaften erfüllt sind: –die beiden Unterbäume sind binäre Suchbäume –die Beschriftungen der Knoten des linken Suchbaums sind kleiner als die Beschriftung der Wurzel –die Beschriftungen des rechten Suchbaums sind größer als die Beschriftung der Wurzel n n>n

5 5 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

6 6 Durchlaufstrategie: Breitendurchlauf Warteschlange

7 7 Durchlaufstrategie: Breitendurchlauf Ws

8 8 Durchlaufstrategie: Breitendurchlauf Ws 16

9 9 Durchlaufstrategie: Breitendurchlauf Ws

10 10 Durchlaufstrategie: Breitendurchlauf Ws

11 11 Durchlaufstrategie: Breitendurchlauf Ws 14

12 12 Durchlaufstrategie: Breitendurchlauf Ws 18

13 13 Durchlaufstrategie: Breitendurchlauf Ws

14 14 Durchlaufstrategie: Breitendurchlauf Ws

15 15 Durchlaufstrategie: Breitendurchlauf Ws 15

16 16 Durchlaufstrategie: Breitendurchlauf Ws

17 17 Durchlaufstrategie: Breitendurchlauf Ws

18 18 Durchlaufstrategie: Breitendurchlauf Ws

19 19 Durchlaufstrategie: Breitendurchlauf Ws

20 20 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()); }... } entferne Test auf Ende Durchlaufstrategie: Breitendurchlauf

21 21 Breitendurchlauf: SohnElem 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; } } knoten (statt int )

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

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

24 24 Eingabefolge Eingabefolge Eingabefolge oder Eingabefolge Beispiele für den Aufbau binärer Suchbäume

25 25 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.

26 26 AVL-Baum: Beispiel

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

28 28 AVL-Baum: Beispiel

29 29 AVL-Baum: Beispiel

30 AVL-Baum: Beispiel

31 31 Einfügen von Knoten Einfügen von k = 30

32 Einfügen von Knoten Einfügen von k = 30

33 Einfügen von Knoten Einfügen von k = 30

34 Einfügen von Knoten Einfügen von k = 30

35 Einfügen von Knoten Einfügen von k = 30

36 Einfügen von Knoten Einfügen von k = 30

37 Einfügen von Knoten Einfügen von k = 30

38 Einfügen von Knoten Einfügen von k = 30

39 Ausgeglichenheit ist verletzt Einfügen von Knoten Einfügen von k = 30

40 Ausbalancieren durch Rotation Einfügen von Knoten Einfügen von k = 30

41 Einfügen von Knoten R- Rotation Einfügen von k = 30

42 Einfügen von Knoten Einfügen von k = 30

43 Einfügen von Knoten Einfügen von k = 30

44 L- Rotation Einfügen von Knoten Einfügen von k = 30

45 Einfügen von Knoten Einfügen von k = 30

46 Einfügen von Knoten Einfügen von k = 30

47 Einfügen von Knoten Einfügen von k =

48 Einfügen von Knoten Einfügen von k =

49 Einfügen von Knoten

50 50 Löschen von Knoten Löschen von k = 8

51 51 Löschen von Knoten Löschen von k = 8

52 52 Löschen von Knoten Löschen von k = 8

53 53 Löschen von Knoten Löschen von k = 8

54 54 Löschen von Knoten Löschen von k = 8

55 55 Löschen von Knoten Löschen von k = 8

56 56 Löschen von Knoten Löschen von k = 11

57 57 Löschen von Knoten Löschen von k = 11

58 58 Löschen von Knoten Löschen von k = 11

59 59 Löschen von Knoten Löschen von k = 11

60 60 Löschen von Knoten Löschen von k = 11 L- Rotation

61 61 Löschen von Knoten Löschen von k = 11

62 62 Löschen von Knoten Löschen von k = 11

63 Löschen von Knoten

64 Löschen von Knoten

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

66 66 L-Rotation T1T1 T2T2 T3T3 k1k1 k2k2 0 +1

67 67 L-Rotation T1T1 T2T2 T3T3 k1k1 k2k2 x +1 +2

68 68 L-Rotation T1T1 T2T2 T3T3 k1k1 k2k2 x +1 +2

69 69 L-Rotation T1T1 T2T2 T3T3 k1k1 k2k2 x +1 +2

70 70 L-Rotation T1T1 k1k1 k2k2 x 0 T2T2 T3T3 0

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

72 72 LR-Rotation T1T1 k2k2 k1k1 0 T3T3 T4T4 k3k3 T2T2 0

73 73 LR-Rotation T1T1 k2k2 k1k1 x T3T3 T4T4 k3k3 T2T2 +1

74 74 LR-Rotation k1k1 -2 T4T4 T1T1 k2k2 x +1 T3T3 k3k3 T2T2

75 75 LR-Rotation k1k1 -2 T1T1 k2k2 x +1 T3T3 T4T4 k3k3 T2T2

76 76 LR-Rotation T1T1 k2k2 k1k1 x T3T3 T4T4 k3k3 T2T2 +1

77 77 LR-Rotation k1k1 -2 T4T4 T1T1 k2k2 x T3T3 k3k3 T2T2

78 78 LR-Rotation k1k1 -2 T1T1 k2k2 x T3T3 T4T4 k3k3 T2T2

79 79 LR-Rotation T1T1 k2k2 k1k1 x -2 T3T3 T4T4 k3k3 T2T2

80 LR-Rotation T1T1 k2k2 k1k1 x 0 0 T3T3 T4T4 k3k3 T2T2


Herunterladen ppt "Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung 9 09.12.99 -Binärer Suchbaum III- -AVL-Baum-"

Ähnliche Präsentationen


Google-Anzeigen