WS18 Algorithmen und Datenstrukturen 1 4. Kapitel Suchbäume
|
|
- Volker Franke
- vor 5 Jahren
- Abrufe
Transkript
1 WS18 Algorithmen und Datenstrukturen 1 4. Kapitel Suchbäume Martin Dietzfelbinger November 2018 FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4
2 4.1 Binäre Suchbäume Binäre Suchbäume implementieren den Datentyp Wörterbuch Schlüsselmenge (U, <) (total geordnet) und Wertemenge R Wörterbuch: f : S R, wobei S U endlich. empty: leeres Wörterbuch erzeugen lookup: falls x S: f(x) ausgeben (sonst: undefined ) insert: neue Paare (x, f(x)) einfügen (bzw. aktualisieren) delete: anhand von x Paar (x, f(x)) löschen (falls x S) FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 1
3 Beispiel: U = {A, B, C,..., Z} (Standardsortierung), R = N. Ein binärer Suchbaum T : G 4 E 7 K 2 B 9 4 I M 11 D 2 Dargestellte Funktion f = f T : S = D(f) = {B, D, E, G, I, K, M}, f(b) = 9, f(d) = 2, usw. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 2
4 Binärer Suchbaum Knoteneinträge (hier in inneren Knoten): key(v): Schlüssel (aus U) data(v): Daten, Wert (aus R) (oft: Zeiger, Referenz) Definition Ein Binärbaum T mit Einträgen aus U R heißt ein binärer Suchbaum, falls für jeden Knoten v in T gilt: Knoten w im linken Unterbaum von T v key(w) < key(v) Knoten w im rechten Unterbaum von T v key(v) < key(w) engl.: binary search tree. Abk.: (U, R)-BSB oder (U, R)-BST FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 3
5 Alternative Definition: Rekursive Auffassung. (i) ist (U, R)-BSB, mit Schlüsselmenge S =. (ii) Wenn x U und r R und T 1, T 2 (U, R)-BSB mit Schlüsselmengen S 1, S 2 U, und wenn y S 1 : y < x und z S 2 : x < z, dann ist (T 1, (x, r), T 2 ) ein (U, R)-BSB mit Schlüsselmenge S 1 {x} S 2. T 1 <x (x,r) T 2 Falls (ii): key(t ) := x und data(t ) := r. >x FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 4
6 T: (G,4) (E,3) (K,7) (B,1) (I,5) (M,8) (D,2) (J,6) Implementierung von binären Suchbäumen: Verzeigerte Struktur. Knoten hat Komponenten für Schlüssel, Daten und Zeiger/Referenzen auf linkes und rechtes Kind: T.key, T.data, T.left, T.right Baum ist gegeben durch Zeiger/Referenz auf Wurzel. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 5
7 Suchen, rekursiv lookup(t, x), für BSB T, x U. // Ergebnis: Zeiger auf Knoten mit x, falls vorhanden 1. Fall: T =. return nicht gefunden Ab hier: T, also T = (T 1, (y, r), T 2 ). 2. Fall: x = y. return (r, [Zeiger auf den Wurzelknoten von] T ). 3. Fall: x < y. return lookup(t.left, x) // rekursiver Aufruf. 4. Fall: x > y. return lookup(t.right, x) // rekursiver Aufruf. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 6
8 Beispiel: H 4. Fall D K 4. Fall B F W 3. Fall 4. Fall O Y S 3. Fall Z 2. Fall Q V Suche: Q S. U FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 7
9 Beispiel: H 4. Fall D K 4. Fall B F W 3. Fall 4. Fall O Y 2. Fall S Z Q V Suche: S S. U FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 8
10 Beispiel: H 4. Fall D K 4. Fall B F W 3. Fall 4. Fall O Y S 3. Fall Z 4. Fall Q V 1. Fall Suche: R / S. U FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 9
11 Korrektheit folgt sofort aus der Struktur von BSB und der rekursiven Struktur des Algorithmus. (Formal: Per Induktion über den Aufbau von Binärbäumen zeige: Ausgabe von lookup(t ) ist korrekt.) Zeitaufwand: Wenn x in Knoten v x : Für jeden Knoten v auf dem Weg von der Wurzel zu v x Kosten O(1). Kosten O(d(v x )) = O(d(T )). Wenn x nicht in T : Suche endet in externem Knoten l x. Kosten O(1) für jeden Knoten auf dem Weg. Kosten O(d(v x )) = O(d(T )). FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 10
12 Einfügen, rekursiv insert(t, x, r), für BSB T, x U, r R. // T : Zeiger 1. Fall: T =. Erzeuge neuen (Wurzel-)Knoten v mit Eintrag (x, r). T v; return T. Ab hier: T = (T 1, (y, r ), T 2 ). 2. Fall: x = y. T.data r; return T. // Update-Situation! 3. Fall: x < y. T.left insert(t.left, x, r); return T. 4. Fall: y < x. T.right insert(t.right, x, r); return T. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 11
13 Beispiel: 3. Fall H 4. Fall D K B F 3. Fall W 1. Fall O Y S Z Q V Füge ein: E / S. U FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 12
14 Beispiel: H D K B F W E O Y S Z Q V Füge ein: E / S. U FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 12
15 Beispiel: H 4. Fall D K 4. Fall B F W 3. Fall 1. Fall 3. Fall O Y S Z Q V Füge ein: N / S. U FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 13
16 Beispiel: H D K B F W O Y N S Z Q V Füge ein: N / S. U FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 13
17 Beispiel: H 4. Fall D K 4. Fall B F W 3. Fall 4. Fall O Y 2. Fall S Z Q V Füge ein: S S. U FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 14
18 Korrektheit: Behauptung: Aufruf insert(t, x, r) erzeugt einen binären Suchbaum (der wieder T heißt), der das modifizierte Wörterbuch insert(f T, x, r) darstellt. Beweis: Induktion über den Aufbau von Binärbäumen. Zeitaufwand: Wenn x im Knoten v x schon vorhanden: Kosten O(d(v x )) = O(d(T )). Wenn x nicht in T : O(1) für jeden Knoten auf dem Weg von Wurzel zu l x. Kosten O(d(l x )) = O(d(T )). FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 15
19 Löschen, rekursiv delete(t, x), für BSB T, x U. 1. Fall: T =. // Nichts zu tun. (x nicht vorhanden.) Ab hier: T, also T = (T 1, (y, r), T 2 ). 2. Fall: x < y. T.left delete(t.left, x); return T ; 3. Fall: y < x. T.right delete(t.right, x); return T ; 4. Fall: x = y. // Lösche Wurzel! Unterfälle 4a 4c, s.u. return T. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 16
20 Fall 4a: T.left = : return T.right. (auch wenn T.right = ist!) T: x T : T 2 T 2 Fall 4b: T.right = : return T.left. T : x T : T 1 T 1 FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 17
21 Fall 4c: T 1 und T 2. T : x T 2 Schlüssel minimal in T y 2 y u Suche in T 2 Eintrag (y, r ) mit minimalem y, in Knoten u. (Dies ist der Inorder-Nachfolger der Wurzel von T.) T 2 T 2 ohne u; T besteht aus u als Wurzel, T 1 als linkem und T 2 als rechtem Unterbaum. (Zeiger/Referenzen umhängen, nicht Daten/Schlüssel kopieren!) FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 18
22 Extrahieren des Minimums, rekursiv Extrahieren des Knotens mit kleinstem Schlüssel aus einem nichtleeren BSB T = (T 1, (z, r), T 2 ): extractmin(t ). Ebenfalls rekursiv zu realisieren. Rückgabewerte: Veränderter Baum T und ein separater Baumknoten (via Zeiger auf diesen Knoten). 1. Fall: T.left =. Schlüssel z in der Wurzel ist minimal in T. T T.right; T.right ; return([baum] T, [Knoten] T ). 2. Fall: T.left. (T.left, u) extractmin(t.left); return(t, u). FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 19
23 Beispiel: H 3. Fall D K 3. Fall B F W 2. Fall 3. Fall O Y S 2. Fall Z Fall 4a Q V Lösche: Q. U FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 20
24 Beispiel: H D K B F W O Y S Z V Lösche: Q. U FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 20
25 Beispiel: H 3. Fall D K Fall 4a B F W O Y S Z Q V Lösche: K. U FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 21
26 Beispiel: H D W B F O Y S Z Q V U Lösche: K. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 21
27 Beispiel: H Fall 4c D W minimal B F O Y S Z Q V U Lösche: H. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 22
28 Beispiel: O H D W B F Y S Z Q V U Lösche: H. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 22
29 Intuitive, iterative Beschreibung des Löschvorgangs: 1) Suche Schlüssel x in T. 2) Falls nicht gefunden, ist nichts zu tun. 3) Falls x in Knoten v, gibt es drei Fälle: 3a) v hat keinen linken Unterbaum. Biege Zeiger vom Vorgänger von v zu v auf den rechten Unterbaum von v um. (Der Fall, dass v Blatt ist, ist in 3a) inbegriffen.) 3b) v hat keinen rechten Unterbaum. Biege Zeiger vom Vorgänger von v zu v auf den linken Unterbaum von v um. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 23
30 3c) v hat linken und rechten Unterbaum. Suche Inorder-Nachfolger u von v, d.h. den Knoten mit kleinstem Schlüssel im rechten Unterbaum von v. (Gehe zum rechten Kind von v und dann immer links, bis Knoten u erreicht, der kein linkes Kind hat.) Der linke Unterbaum von u ist immer leer! Klinke u aus durch Umbiegen des Zeigers vom Vorgänger von u auf den rechten Unterbaum an u. Ersetze in T den Knoten v durch u (Zeiger zu den Kindern kopieren, Zeiger auf v nach u umbiegen). FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 24
31 Korrektheit: Behauptung: Aufruf delete(t, x) erzeugt einen binären Suchbaum (der wieder T heißt), der das modifizierte Wörterbuch delete(f T, x) darstellt. Beweis: Induktion über den Aufbau von Binärbäumen. Dabei muss man gesondert beweisen, und dann benutzen, dass extractmin(t ), angewendet auf einen nichtleeren BSB, das verlangte Resultat liefert. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 25
32 Zeitaufwand: x im Knoten v x, Fälle 2/3: O(d(v x ) = O(d(T )). x im Knoten v x, Fall 4: O(d(v + x )) = O(d(T )), für Inorder-Nachfolger v + x von v x. x in T nicht vorhanden: O(d(l x )) = O(d(T )), für externen Knoten l x. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 26
33 4.2 Erwartete mittlere Tiefe in zufälligen BSBs Schon gesehen:. a c d 0 f k 1 1 h m n p Summe der Tiefen: = 17 Totale innere Weglänge TIPL(T ) := v V d(v) 1 Mittlere innere Weglänge: TIPL(T ). n Entspricht erwarteten Kosten, wenn jeder Schlüssel mit Wahrscheinlichkeit 1 n gesucht wird. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 27
34 Zufällig erzeugte binäre Suchbäume T zufällig erzeugt: Starte mit leerem Baum, füge Schlüssel aus Menge S = {x 1, x 2,..., x n } ein. Eingabereihenfolge der Schlüssel x 1 < x 2 < < x n ist rein zufällig jede Reihenfolge hat Wahrscheinlichkeit 1/n!. A(n) := E(TIPL(T )). Dann ist der erwartete (über Eingabereihenfolge zufällig) mittlere (über n Schlüssel x S gemittelte) Aufwand für lookup(x): O (1 + 1n ) A(n). Was ist A(n)? A(0) = 0, A(1) = 0, A(2) = 1. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 28
35 A(3) =? 6 Einfügereihenfolgen für (x 1, x 2, x 3 ) = (1, 2, 3): TIPL(T): ! Derselbe Baum! TIPL(T): 2 2 A(3) = E(TIPL(T )) = 1 6 ( ) = 8 3. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 29
36 Rekursionsformel Wenn x i der erste eingefügte Schlüssel ist, dann hat der linke Unterbaum i 1 Schlüssel, der rechte n i. x i x 1,..., x i- 1 x i+1,..., x n Die Unterbäume sind selbst zufällig erzeugte binäre Suchbäume. Also: E(TIPL(T ) falls x i erster) = = ((i 1) + A(i 1)) + ((n i) + A(n i)). FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 30
37 Begründung: Der Weg in T zu jedem der n 1 Knoten in den Teilbäumen ist um 1 länger als der Weg im Teilbaum; daher die Summanden (i 1), (n i). Vereinfachung: E(TIPL(T ) falls x i erster) = (n 1) + A(i 1) + A(n i). Jeder der n Schlüssel x 1,..., x n hat dieselbe Wahrscheinlichkeit 1/n, als erster eingefügt zu werden und die Wurzel zu bilden. Also Mittelung: A(n) = 1 n 1 i n [(n 1) + A(i 1) + A(n i)]. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 31
38 Rekurrenzgleichung für A(n): A(0) = 0 und A(n) = (n 1) + 1 n (A(i 1) + A(n i)), für n 1. 1 i n Lösung, nach größerer Rechnung: A(n) = 2(n + 1)H n 4n, wobei H n = n. Erwartete mittlere Knotentiefe (Einfügereihenfolge zufällig; Mittelung über x 1,..., x n ): Teilen durch n liefert 1 n A(n) = 2H n 4 + 2H n n < 2H(n) 4. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 32
39 Was ist H n? Für jedes i 2: Für jedes i 1: Daraus: 1 i < i+1 i i i 1 dt t. dt t < 1 i. H n 1 = n < n ln n = n 1 1 dt t = ln n. dt t n 1 < H n. Also: ln n < H n < 1 + ln n, für n 2. H(n) ist die diskrete Version von ln n. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 33
40 Satz A(n) 2 ln n Ω(1) n Wenn man Zweierlogarithmen lieber mag: 1 A(n) = (2 ln 2) log n Ω(1) (2 ln 2) log n. n Dabei: 2 ln 2 = 1, Satz (Kurzform) In zufällig erzeugten natürlichen binären Suchbäumen ist die erwartete mittlere Knotentiefe < 1,39 log n + O(1). Mitteilung: Erwartete Baumtiefe ist ebenfalls O(log n), genauer: E(d(T )) 3 log n + O(1/n). FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 34
41 Idee: 4.3 Balancierte binäre Suchbäume Lasse nur Bäume zu, die bestimmte Strukturbedingungen erfüllen. Strukturbedingungen erzwingen geringe Tiefe (z. B. O(log n) bei n Einträgen). Implementiere Wörterbuch-Operationen insert und delete, so dass sie die Strukturbedingungen erhalten und in Zeit O(Baumtiefe) durchführbar sind. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 35
42 ?? Attraktiv: Perfekte Balance. D. h.: Alle Blätter auf zwei benachbarten Levels: Tiefe d erfüllt 2 d 1 < n 2 d+1 1, also d = log(n + 1) 1 log n. Attraktiv?? Nein! Einfüge- und Lösch-Operationen zu teuer. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 36
43 Häufig benutzte Strukturbedingungen: (mit Literatur) AVL-Bäume Rot-Schwarz-Bäume [Cormen et al.], [Sedgewick] 2-3-Bäume Bäume [Cormen et al.], [Sedgewick], [D./Mehlhorn/Sanders] B-Bäume [Cormen et al.] FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 37
44 4.3.1 AVL-Bäume Höhenbalancierte binäre Suchbäume [G. M. Adelson-Velski und J. M. Landis 1962] T : v d 1 d 2 T T v,2 v,1 d 2 d 1 1 FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 38
45 Definition Ein Binärbaum T heißt höhenbalanciert, falls in jedem Knoten v in T für den Teilbaum T v = (T v,1, v, T v,2 ) mit Wurzel v gilt: d(t v,2 ) d(t v,1 ) }{{} Balancefaktor bal in v { 1, 0, 1}. Äquivalent ist die rekursive Charakterisierung: (i) Der leere Baum ist höhenbalancierter BB über U. (ii) Sind T 1 und T 2 höhenbalancierte BB, x U, und ist bal = d(t 2 ) d(t 1 ) { 1, 0, 1}, so ist (T 1, x, T 2 ) höhenbalancierter BB über U (mit Balancefaktor bal). FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 39
46 Beispiele: Stets: Nicht.. hohenbalanciert: FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 40
47 Definition Ein höhenbalancierter binärer Suchbaum heißt AVL-Baum. Für die Implementierung von AVL-Bäumen muss man in jedem inneren Knoten v seinen Balancefaktor speichern. Notation: bal(v) ist der Balancefaktor in Knoten v. Hoffnung: AVL-Bäume sind nicht allzu tief. Tatsächlich:... logarithmisch tief. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 41
48 Satz Ist T ein höhenbalancierter Baum mit n 1 Knoten, so gilt d(t ) 1,4405 log 2 n. D.h.: AVL-Bäume sind höchstens um den Faktor 1,4405 tiefer als vollständig balancierte binäre Suchbäume mit derselben Knotenzahl. Beweisansatz: Wir zeigen, dass ein AVL-Baum mit Tiefe d exponentiell in d viele Knoten haben muss, nämlich mindestens Φ d viele für eine Konstante Φ > 1, mit log Φ 2 1,4405. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 42
49 Beweis des Satzes: Für d = 0, 1, 2,... setze N(d) := die minimale Zahl innerer Knoten in einem AVL-Baum T mit d(t ) = d. N(0) = Knoten N(1) = 2 1 oder 2 Knoten FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 43
50 N (2) = 4 2 oder oder... N (3) = 7 oder oder FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 44
51 Behauptung 1: N(d) = 1 + N(d 1) + N(d 2), für d 2. v T1 : T : 2 d 1 N( d 1) N( d 2) d 2 Beweis: Es ist klar, dass N(d) > N(d 1) für alle d. Damit der höhenbalancierte Baum der Tiefe d minimale Knotenzahl hat, müssen die Unterbäume Tiefe d 1 und d 2 haben und selbst minimale Knotenzahl für diese Tiefe haben. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 45
52 N(d) = 1 + N(d 1) + N(d 2), für d 2. N(d) für kleine d: d N(d) Eindruck: exponentielles Wachstum. Man kann zeigen: N(d) = F d+3 1, für Fibonacci-Zahlen F 0, F 1, F 2,.... FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 46
53 Behauptung 2: N(d) Φ d, für d 0, wo Φ = 1 2 (1 + 5) 1, ( goldener Schnitt ). ( ) Φ ist Lösung der quadratischen Gleichung x 2 = x + 1. Beweis von Beh. 2: Vollständige Induktion. Für d = 0: N(0) = 1 = Φ 0 ; für d = 1: N(1) = 2 > Φ. Sei nun d 2. N(d) Beh. 1 = 1 + N(d 1) + N(d 2) I.V. Φ d 1 + Φ d 2 = Φ d 2 (Φ + 1) ( ) = Φ d 2 Φ 2 = Φ d. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 47
54 Nun sei T ein höhenbalancierter Baum mit Höhe d(t ) 0 und n Knoten. Nach Behauptung 2: Φ d(t ) n. Durch Logarithmieren: d(t ) log Φ (n), d. h. d(t ) log Φ (2) log 2 (n). Es gilt: log Φ (2) = (ln 2)/(ln Φ) = 1, < 1,4405. Damit ist Satz bewiesen. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 48
55 AVL-Bäume: höhenbalancierte binäre Suchbäume. Wissen: haben logarithmische Tiefe. Müssen noch zeigen: Man kann die Wörterbuchoperationen so implementieren, dass die AVL-Eigenschaft erhalten bleibt, und der Zeitbedarf proportional zur Tiefe ist. Knotenformat: x : key r : data left bal: Z right x: key; r: data; bal: integer; // Legal: { 1, 0, 1} left, right: AVL Tree // Zeiger auf Baumknoten FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 49
56 4.3.2 Implementierung der Operationen bei AVL-Bäumen AVL empty: Erzeuge NULL-Zeiger. (Wie bei gewöhnlichem BSB.) AVL lookup: Wie bei gewöhnlichem BSB. Brauchen nur: AVL insert(t, x, r) und AVL delete(t, x). Grundansatz: Führe diese Operationen aus wie bei gewöhnlichem BSB. Eventuell wird dadurch Bedingung Höhenbalancierung verletzt. Reparatur : Rebalancierung, erfolgt rekursiv. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 50
57 Rotationen: Hilfsoperationen Rechtsrotation: kippe 1 Kante nach rechts : v u liefert: v u FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 51
58 Rotationen: Hilfsoperationen Rechtsrotation: Mit Unterbäumen: T : v y v T u : 1 x u u 1 x 2 3 T 3 T 1 y v 2 3 T 1 T 2 T 3 T 2 Beobachte: Knotenmenge gleich T u binärer Suchbaum. Denn: Weil T v binärer Suchbaum ist, gilt für v 1 in T 1, v 2 in T 2, v 3 in T 3 : key(v 1 ) < x < key(v 2 ) < y < key(v 3 ). Also ist T u auch BSB. Beim Umbau ändert sich nur: rechtes Kind von u und linkes Kind von v, sowie der Zeiger von außen (von v auf u umsetzen). FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 52
59 Rechtsrotation als Programm: Funktion rotater(v : AVL Tree): AVL Tree (1) // v, v.left (2) u : AVL Tree ; // Hilfsvariable (3) u v.left ; (4) v.left u.right ; (5) u.right v ; (6) return u (7) //!! Balancefaktoren in u und v sind falsch! FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 53
60 Linksrotation: Umkehrung von Rechtsrotation, Implementierung analog. u 1 x 2 y v 3 u 1 x v 2 y 3 T 1 T 3 T 2 T 2 T 3 T1 Hier und in den folgenden Beispielen: Nummern bezeichnen Anschlussstellen für die Unterbäume. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 54
61 y r_r 3 1 x a 1 x c 2 2 l_r a y 3 c y 3 r_r 1 x 1 x 2 a c l_r a 2 y 3 c c 1 x 2 a y 3 r_r l_r c 1 x a 2 y 3 FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 55
62 Doppelrotationen: Links-Rechts, Rechts-Links Beispiel: Links-Rechts-Doppelrotation u x z v y w links an u u x v y z w rechts an w u x v y w z Anzuwenden auf Zick-Zack-Weg aus zwei Kanten, Form links-rechts. Effekt: Tiefster Knoten v wird Wurzel. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 56
63 Links-Rechts-Doppelrotation: Mit Unterbäumen 1 u x 2 v y w 3 z 4 T 4 1 u x v y w z T 2 T 3 T 4 T 1 T 1 T 2 T 3 Gesamteffekt: Der unterste Knoten v des Zick-Zack-Wegs ( links-rechts ) wandert nach oben, wird Wurzel; die beiden anderen Knoten u und w werden linkes und rechtes Kind. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 57
64 LR-Doppelrotation als Programm Funktion rotatelr(w : AVL Tree) : AVL Tree (1) // Eingabe: w mit (2) // w.left, w.left.right (3) u, v : AVL Tree ; (4) u w.left ; (5) v u.right ; (6) w.left v.right ; (7) u.right v.left ; (8) v.left u ; (9) v.right w ; (10) return v (11). //!! Balancefaktoren in u, v, w sind falsch!. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 58
65 Rechts-Links-Doppelrotation: Symmetrisch zu Links-Rechts-Doppelrotation T 1 1 x u v y 2 3 T T 2 3 z w 4 T 4 T 1 1 u x 2 T 2 y v 3 T 3 z w 4 T 4 Implementierung: Analog zu Links-Rechts-Doppelrotation. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 59
66 Beispiel: links rechts D A B P F S R T D A B P F S R T D A B P F S R T D A B P F S R T D A B P F S R T links rechts rechts links FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 60
67 AVL insert(t, x, r) Füge ein wie bei gewöhnlichem BSB: erzeugt neuen Knoten. Laufe dann Einfügeweg von unten nach oben ab, kontrolliere Balancebedingung. Nirgendwo verletzt: fertig. Sonst: v = tiefster Knoten auf Einfügeweg mit bal(v) { 2, 2}. An v: Einfach- oder Doppelrotation. (Dann Rebalancierung beendet.) Wenn ein äußerer Teilbaum (links-links oder rechts-rechts) zu tief ist: Einfache Rotation hebt diesen Teilbaum ein Level höher. Wenn ein mittlerer Teilbaum (links-rechts oder rechts-links) zu tief ist: Doppelrotation hebt den mittleren Teilbaum ein Level höher. Zum Ausprobieren: FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 61
68 Beispiel: Einfügen von 1, 3, 9, 11, 12, 10, 2, 6, 4, 7, 0 in anfangs leeren AVL-Baum. Wir zeichnen nur Situationen, in denen Rotationen stattfinden. Der tiefste Knoten, an dem die Balancebedingung verletzt ist, ist rot gezeichnet. 1 links 3 3 rechts links links FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 62
69 1 3 rechts links 11 links rechts links rechts links FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 63
70 9 rechts 9 2 links FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 64
71 Etwas knifflig: Rekursive Programmierung des Ablaufs. Kann/will nicht verwenden: Globale Sicht, Vergleichen von Tiefen durch Hinschauen. Benutzt werden: Balancefaktoren T.bal in den Knoten, Flagbit deeper, das als Resultat eines rekursiven Aufrufs mitteilt, ob der bearbeitete Unterbaum tiefer geworden ist. Steuerung einer großen Fallunterscheidung durch alte Balancefaktoren und deeper -Meldungen aus rekursivem Aufruf. Details, Programme: siehe Literatur (oder AuD-Folien im SS2018). FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 65
72 Proposition Die rekursive Prozedur AVL insert(t, x, r) führt die Wörterbuchoperation insert korrekt durch. D. h.: Aus T entsteht ein AVL-Baum für insert(f T, x, r). Die Prozedur hat Laufzeit O(log n) und führt höchstens eine Einfach- oder Doppelrotation durch. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 66
73 4.3.5 Folgerung (aus Algorithmus AVL insert): Für jedes n 0 gibt es einen höhenbalancierten Baum mit n Knoten. Beweis: Man fügt 1,..., n mittels AVL insert in einen anfangs leeren AVL-Baum ein. Gute Übung: Führe dies für n = 16 (z. B.) von Hand aus. Bemerkung: Wenn T ein beliebiger höhenbalancierter Baum mit n Knoten ist, dann gibt es eine Einfügereihenfolge für Schlüssel 1,..., n, die genau diesen Baum erzeugt sogar ohne jede Rotation (Übung). FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 67
74 AVL delete(t,x) Lösche wie bei gewöhnlichem BSB: Fälle, ExtractMin Effekt: Knoten u wird entfernt, dem mindestens ein Unterbaum fehlt. Dadurch rutscht der andere Unterbaum von u eine Ebene höher. Laufe den Weg von der Stelle, wo u gelöscht wurde, zur Wurzel, teste an jedem Knoten die Balancebedingung, führe gegebenenfalls eine Einfach- oder eine Doppelrotation aus. Regeln zur Auswahl der richtigen Rotationsart: wie bei AVL insert. Achtung: Möglicherweise auf mehreren Levels nacheinander Rotation nötig. Beispiel: Fibonacci-Bäume... FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 68
75 Tiefe Knoten Fibonacci-Bäume der Tiefe 1, 0, 1, 2, 3 FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 69
76 4 12 Knoten 5 20 Knoten Fibonacci-Bäume der Tiefe 4, 5 FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 69
77 FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 69
78 Rechtsrotation! FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 69
79 Fertig! Programmierung von AVL delete: Nicht prüfungsrelevant! Können muss man: Ausführen der Löschung und Rebalancierung an Beispiel. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 69
80 Proposition Die rekursive Prozedur AVL delete(t, x) führt die Wörterbuchoperation delete korrekt durch. D.h.: es entsteht ein AVL-Baum für delete(t, x). Die Prozedur hat Laufzeit O(log n) und führt an jedem Knoten auf dem Weg vom gelöschten Knoten zur Wurzel höchstens eine Einfach- oder Doppelrotation durch. Satz In AVL-Bäumen kostet jede Wörterbuchoperation Zeit O(log n), wenn n die Anzahl der Wörterbucheinträge ist. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 70
81 4.4 Mehrweg-Such-Bäume Bäume aus Knoten mit variablem Ausgrad. Knoten mit mehreren Schlüsseln und mehr als zwei Unterbäumen: x 1 x l T0 T 1 Tl-1 T l x 1 < < x l. Für y i in T i, 0 i l: y 0 < x 1 < y 1 < x 2 < < y l 1 < x l < y l FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 71
82 Beispiel eines N-MwSB: Wurzel ohne Pfeil steht für einen Zeiger auf einen leeren Baum. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 72
83 Definition Mehrweg-Suchbäume (MwSBe) über dem (angeordneten) Universum U sind wie folgt induktiv definiert: (0) Der leere Baum ist ein U-MwSB. (1) Ist l 1 und sind x 1 < x 2 < < x l Schlüssel in U und sind T 0, T 1,..., T l U-MwSBe mit: Für y i in T i, 0 i l: y 0 < x 1 < y 1 < x 2 < < y l 1 < x l < y l dann ist auch (T 0, x 1, T 1, x 2,..., x l 1, T l 1, x l, T l ) ein U-Mehrweg-Suchbaum. Analog: (U, R)-Mehrweg-Suchbäume. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 73
84 Implementierung eines Knotens in Mehrwegsuchbaum: Variante 1: Jeder Knoten enthält 2 Arrays. keys: l max l: sons: 3 l_max: l max FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 74
85 Implementierung eines Knotens in Mehrwegsuchbaum: Variante 2: Schlüssel und Kinder als Listen. keys: sons: l: 3 FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 75
86 Implementierung eines Knotens in Mehrwegsuchbaum: Variante 3: Ein MwSB-Knoten wird durch eine aufsteigend sortierte lineare Liste von Binärbaumknoten dargestellt. T: * 7 16 * * * * 9 * 12 * FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 76
87 Jeder Knoten hat Platz für: Schlüssel, (Daten,) Zeiger auf Unterbaum, Zeiger auf nächsten in Liste. Im Knoten muss als Boolescher Wert vermerkt sein, ob es sich um den Knoten am Listenende handelt. (Im Bild: *.) Dieser Knoten hat zwei Zeiger auf Unterbäume. Elegant: Für die Suche kann man die gewöhnliche Suchprozedur für binäre Suchbäume benutzen. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 77
88 Spezialfall: 2-3-Bäume Definition Ein Mehrweg-Suchbaum T heißt ein 2-3-Baum, wenn gilt: (a) Jeder Knoten enthält 1 oder 2 Schlüssel (also hat jeder Knoten 2 oder 3 Unterbäume, was der Struktur den Namen gibt); (b) Für jeden Knoten v in T gilt: wenn v einen leeren Unterbaum hat, so sind alle Unterbäume unter v leer, d.h. v ist dann Blatt; (c) Alle Blätter von T haben dieselbe Tiefe. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 78
89 Beispiele: Leerer 2-3-Baum: 2-3-Baum mit 2 Ebenen: G O Level 1 A I L R Level 0 = Blattebene NB: Die Ebenen werden von den Blättern her nummeriert. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 79
90 Beispiele: I Level 2 G O T Level 1 A H L M R S U Level 0 = Blattebene FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 80
91 L O T A M R U Kein 2-3-Baum (zu großer Grad). G A O L M R Kein 2-3-Baum (Blätter in verschiedenen Tiefen). FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 81
92 G O A I L Kein 2-3-Baum (Leerer Unterbaum in Nicht-Blatt). FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 82
93 Level h h Proposition Die Tiefe eines 2-3-Baums mit n Einträgen ist mindestens log 3 (n+1) 1 und höchstens log(n+1) 1. [log 3 x 0.63 log 2 x] Beweis: Übung. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 83
94 Operationen in 2-3-Bäumen lookup(t, x), für 2-3-Baum T, x U, insert(t, x, r), für 2-3-Baum T, x U, r R, delete(t, x), für 2-3-Baum T, x U, können so implementiert werden, dass die Laufzeit O(log n) ist. Mitteilung Einfügungen und Löschungen lassen sich in 2-3-Bäumen ähnlich wie in AVL-Bäumen in Zeit O(log n) ausführen. Die nötigen Strukturänderungen werden dabei entlang des Wegs von der geänderten Stelle aus nach oben zur Wurzel gehend durchgeführt. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 84
95 2-3-4-Bäume Ein Baum ist ein Mehrweg-Suchbaum mit: (a) Jeder Knoten hat 2, 3 oder 4 Kinder (1, 2 oder 3 Schlüssel) (b) Für jeden Knoten v in T gilt: v hat einen leeren Unterbaum alle Unterbäume unter v sind leer, d. h. v ist Blatt; (c) Alle Blätter von T haben dieselbe Tiefe. Mitteilung Die Wörterbuchoperationen können auch mit Bäumen so implementiert werden, dass sie logarithmische Zeit benötigen. Die Rebalancierung lässt sich alternativ top-down implementieren, auf dem Weg zur Einfügestelle bzw. Löschstelle, ohne Zurücklaufen. Lit.: [D./Mehlhorn/Sanders]. Dort: Einträge nur in Blättern. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 85
96 Rot-Schwarz-Bäume M E P D I R B G K FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 86
97 Rot-Schwarz-Bäume Ein (linksgeneigter) Rot-Schwarz-Baum ist ein binärer Suchbaum mit: (a) Jede Kante hat eine Farbe rot oder schwarz (1 Flagbit!). (b) Kanten zu (leeren, externen!) Blättern sind schwarz. (c) Auf keinem Weg folgen zwei rote Kanten aufeinander. (d) Wenn ein Knoten nur eine rote Ausgangskante hat, so führt diese zum linken Kind. (e) Auf jedem Weg von der Wurzel zu einem Blatt liegen gleich viele schwarze Kanten. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 87
98 Die Schwarz-Tiefe b(v) eines Knotens v ist die Anzahl der schwarzen Kanten auf einem Weg von v zu einem Blatt. Die Schwarz-Tiefe b(t ) des Rot-Schwarz-Baums T ist die Schwarz-Tiefe des Wurzelknotens von T. M E P D I R B G K Schwarz-Tiefe: 2. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 88
99 Mitteilung Die Wörterbuchoperationen können auch mit Rot-Schwarz- Bäumen so implementiert werden, dass sie logarithmische Zeit benötigen. Weiterführende Operationen (wie das Spalten von Bäumen oder die Vereinigung von Bäumen) lassen sich mit Rot-Schwarz-Bäumen gut implementieren. Lit.: [Cormen, Leiserson, Rivest, Stein] und [Sedgewick]. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 89
100 Wenn man einen schwarzen Knoten mit seinen roten Kindern (0, 1 oder 2) zu einem Super-Knoten zusammenfasst, erhält man einen Baum. D. h.: Rot-Schwarz-Bäume sind spezielle Darstellungen von Bäumen, die nur Binärbaumknoten benutzen. M E P D I R B G K FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 90
101 B-Bäume Ein B-Baum zum Parameter t 2 ist ein Mehrweg-Suchbaum mit: (a) Jeder Knoten hat maximal 2t Kinder ( 2t 1 Schlüssel) (b) Jeder Knoten außer der Wurzel hat mindestens t Kinder ( t 1 Schlüssel); die Wurzel hat mindestens 2 Kinder ( 1 Schlüssel) (c) Für jeden Knoten v in T gilt: v hat einen leeren Unterbaum alle Unterbäume unter v sind leer, d. h. v ist Blatt; (d) Alle Blätter von T haben dieselbe Tiefe. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 91
102 Mitteilung Die Tiefe eines B-Baums mit Parameter t für n Einträge ist Θ(log t n) = Θ((log n)/(log t)), genauer mindestens (log n)/ log(2t) 1, höchstens (log n)/ log t. Beispiel: t = 32. Tiefe: (log n)/5. Jede Wörterbuchoperation betrifft höchstens zwei Knoten auf jedem Level, also höchstens 2(log n)/ log t viele. B-Bäume werden für die Implementierung von Wörterbüchern auf externen Speichermedien (Festplatte, SSD) benutzt, die eine höhere Latenzzeit haben und Lesen in größeren Blöcken erlauben. Details: Vorlesungen zu Datenbanktechniken. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS18 Kapitel 4 92
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
MehrSS16 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
MehrSS11 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
MehrAlgorithmen 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
MehrBalancierte Suchbäume
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 Balancierte Suchbäume
Mehr2.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
MehrInformatik 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
MehrVorlesung 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
Mehr3. 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:
MehrSatz 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
MehrDefinition 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
Mehr18. 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
MehrRotation. 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
MehrKlausur 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
MehrAVL-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,
MehrAlgorithmen 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
MehrBalancierte 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
Mehr9. 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
MehrInformatik 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
MehrAlgorithmen 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
MehrAnwendungsbeispiel 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
Mehr10. 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.
MehrADS 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]
MehrVorlesung 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
MehrEinfache 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,
MehrAlgorithmen 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
MehrDatenstrukturen 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
MehrWiederholung. 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
MehrAlgorithmen 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
MehrVorlesung 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
MehrInformatik 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
MehrSuchstrukturen. Ü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
MehrAlgorithmen 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Ü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
MehrBinä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
Mehr7 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,
MehrNAME, VORNAME: Studiennummer: Matrikel:
TU Ilmenau, Fakultat IA Institut für Theoretische Informatik FG Komplexitätstheorie und Effiziente Algorithmen Prof. Dr. (USA) M. Dietzfelbinger Klausur Algorithmen und Datenstrukturen SS08, Ing.-Inf.
MehrKap. 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
Mehr5 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,
MehrKurs 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
MehrProgramm 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
MehrTeil 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
Mehra) 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
MehrSuchbä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Ü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
MehrInformatik 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
MehrInformatik II: Algorithmen und Datenstrukturen SS 2015
Informatik II: Algorithmen und Datenstrukturen SS 2015 Vorlesung 8b, Mittwoch, 17. Juni 2015 (Balancierte Suchbäume) Prof. Dr. Hannah Bast Lehrstuhl für Algorithmen und Datenstrukturen Institut für Informatik
MehrChristian 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
MehrAlgorithmen 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
MehrAlgorithmen 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
MehrAufgaben, 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
MehrAlgorithmen 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
MehrInformatik 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:
MehrBeweis: 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
Mehr4.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
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 11 (4.6.2014) 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 sein
MehrB6.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
Mehr1 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
MehrWintersemester 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:
MehrProgrammiertechnik 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,...
MehrNatü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(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.
(a, b)-bäume / 1. Szenario: Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss. Konsequenz: Kommunikation zwischen Hauptspeicher und Festplatte - geschieht nicht Byte für Byte,
MehrBeispiellö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Ü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)
MehrCopyright, 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
MehrAlgorithmen 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
MehrBinä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
MehrBinä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,
MehrDatenstrukturen & 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Ü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
MehrLogische 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
MehrAlgorithmen 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Ü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
MehrDatenstrukturen & 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
MehrVorlesung 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,
Mehrmarkiert, 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
MehrContainerDatenstrukturen. 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
MehrGliederung. 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
MehrMengen. 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
MehrAlgorithmen I. Tutorium 1-6. Sitzung. Dennis Felsing
Algorithmen I Tutorium 1-6. Sitzung Dennis Felsing dennis.felsing@student.kit.edu www.stud.uni-karlsruhe.de/~ubcqr/algo 2011-05-23 Überblick 1 Binäre Suchbäume 2 Dennis Felsing Algorithmen I 2/20 Binäre
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 10 (3.6.2014) Binäre Suchbäume I Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:
MehrVorlesung 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
MehrMotivation Binäre Suchbäume
Kap..: Binäre Suchbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS Fakultät für Informatik, TU Dortmund Zusätzliche Lernraumbetreuung Morteza Monemizadeh: Jeden Montag von :00 Uhr-:00 Uhr in
MehrDatenstrukturen & 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
MehrC G C C G C. Löschen von Knoten. Beispiel: Löschen von k =
Löschen von Knoten Beispiel: Löschen von k = 8 14 8 2 11 17 9 26 Informatik 2 SS 1 Beispiel: Löschen von k = 8 14 8 2 11 17 26 Informatik 2 SS 1 9 1 1 Beispiel: Löschen von k = 8-1 14 11 2 17 9 26 Informatik
MehrVorlesung 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
Mehr18. 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
MehrDynamische 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
MehrDatenstrukturen 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-,
MehrDer linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)
Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der
MehrAbschnitt 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
MehrInvarianzeigenschaft (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
MehrAlgorithmen 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
MehrAlgorithmen und Datenstrukturen 8. Vorlesung
Algorithmen und Datenstrukturen 8. Vorlesung Martin Dietzfelbinger 2. Juni 2008 Beispiel eines N-MSB: Mehrweg-Such-Bäume Wurzel 27 39 7 16 29 35 36 38 45 1 2 4 10 11 13 21 25 41 48 50 9 12 FG KTuEA, TU
Mehr3.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
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Prioritätswarteschlangen Maike Buchin 18. und 23.5.2017 Prioritätswarteschlange Häufiges Szenario: dynamische Menge von Objekten mit Prioritäten, z.b. Aufgaben, Prozesse, in der
MehrAlgorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B6.1 Einführung. B6.2 Symboltabellen. B6.3 Einfache Implementationen
Algorithmen und Datenstrukturen 03. April 2019 B6. Symboltabellen a Algorithmen und Datenstrukturen B6. Symboltabellen 1 Marcel Lüthi and Gabriele Röger Universität Basel 03. April 2019 a Folien basieren
Mehr