Binärbäume - Wiederholung Datenstrukturen & Algorithmen Binärbäume sind spezielle Bäume, welcher maximal 2 Söhne haben. Knotenreihenfolgen (Symmetrische, Haupt- und Nebenreihenfolge) Æ geordneter Binärbaum möglich (Nachfolgerrelation) VO 708.031 12. Vorlesung, am 15.Jan. 20091 Implementierbare Funktionen: Alle Funktionen: O(„Baumhöhe“) 15.01.2009 helmut.hauser@IGI • Minimum • Maximum • Vorgänger • Nachfolger 15.01.2009 Binärbäume - online Durch Update-Operation (Löschen, Einfügen) • Einfügen (Aufbau) • Löschen • Suchen helmut.hauser@IGI Wörterbuchproblem Zur Erhaltung von: Höhe=log(n) Techniken zur Erhaltung einer logarithmischen Baumhöhe 1 9 Höhe ≠ log(n) 8 Entartet! 3 Höhe = O(n) Umstrukturieren O(n) (fast) ausgeglichen = gut, da minimale Höhe = O( log n) 15.01.2009 teuer! 7 Höhenbalanciert Gewichtsbalanciert h(B)=Höhe des Baums g(B) = Anzahl der Blätter Für jeden Knoten k gilt: Für jeden Knoten k gilt: |h(Blinks)-h(Brechts)|≤k 1/α ≤ g(Blinks)/g(Brechts)| ≤ α Bsp: AVL-Bäume (k=1) 4 5 helmut.hauser@IGI BB-Bäume (bounded balance) Mehrwegbäume 15.01.2009 helmut.hauser@IGI Definition: (2-4)-Bäume (2-4)-Bäume Ein (2-4)-Baum ist ein Baum mit folgenden Eigenschaften: Höhe=O(log n) Enthalten nur Hilfsinformationen. 4,6 (1) Alle Äste sind gleich lang. (2) Die max. Anzahl der Söhne eines Knotens ist gleich 4. 1,2 10,11 5 (3) Innere Knoten haben ≥ 2 Söhne. 1 2 4 5 6 10 11 24 (4) Die Blätter enthalten v.l.n.r. die Werte aufsteigend sortiert. (5) Jeder innere Knoten mit t Söhnen (2 ≤ t ≤ 4) speichert t-1 Hilfsinformationen x1, …, xt-1, wobei xi = größter Wert im Teilbaum des i-ten Sohnes von links. 15.01.2009 helmut.hauser@IGI Daten werden in den Blättern gespeichert. 15.01.2009 helmut.hauser@IGI (2-4)-Bäume (2,4)-Bäume - Suchen Wir wollen damit das Wörterbuchproblem lösen: 8 11 SUCHEN, EINFÜGEN, ENTFERNEN Achtung: Nach den Update-Funktionen (Einfügen, Entfernen) muss wieder ein korrekter 2-4-Baum vorliegen ! 2 2 4 4 5 5 10 8 10 12 11 siehe später helmut.hauser@IGI 24 Pro Knoten maximal 3 Vergleich Æ O(1) Æ Höhe garantiert Θ(log n) Æ T(n)=Θ(log n) Æ Zeitlicher Mehraufwand, der sich aber rentiert Æ Amortisierte Kosten 15.01.2009 12 24 15.01.2009 helmut.hauser@IGI 31 (2,4)-Bäume - Einfügen (2,4)-Bäume - Entfernen Zwei Fälle (nach dem Entfernen): Definition: 1.) Falls α(k) ≥ 2 Æ fertig !! α(k) ist die Ordnung des k-ten Knoten (=Anzahl der Söhne) 2.) Falls α(k) < 2 Æ Bedingung verletzt Æ Zwei Fälle (nach! dem Einfügen): STEHLEN (wenn α(k‘) ≥ 3) oder VERSCHMELZEN (α(k‘) = 2) 1.) Falls α(k) ≤ 4 Æ fertig !! k’ 2.) Falls α(k) > 4 Æ Bedingung verletzt Æ SPALTEN v v 15.01.2009 helmut.hauser@IGI Analyse der Operationen k’ k’ O(log n) O(log n) O(log n) Speicher: O(n) k’ VERSCHMELZEN Mischbare Warteschlangen Definition: • • • • EINFÜGEN (S,x) MAXIMUM (S) ENTFERNE_MAX (S) MISCHE (S,S‘) Halde Æ 3 Operationen in O(log n) Mit Baum alle Operation Æ O(log n) helmut.hauser@IGI k helmut.hauser@IGI Mischen aber teuer !! Æ O(n) 15.01.2009 k v k 15.01.2009 Wörterbuchproblem Suchen: Einfügen: Entfernen: STEHLEN v v’ k k k 15.01.2009 helmut.hauser@IGI Mischbare Warteschlangen 9 3 3 9 1 9 8 5 2 6 Mischbare Warteschlangen -Unsortierter (2,4)-Baum Mische (S, S‘): Æ Beides 2-4-Bäume mit der Höhe h und h‘ - innere Knoten speichert Maximum in seinen Teilbaum und Zeiger darauf 1.Fall: h = h‘ 2.Fall: h > h‘ Neue Wurzel = O(1) Check α(v) Æ O(log n)!! 8 Entferne Maximum Æ Update der Information O(log n) Maximum trivial Æ in Wurzel O(1) v k w’ 8 h’ Einfügen ist Spezialfall von Mischen! 5 3 15.01.2009 T 8 1 5 2 6 T’ 8 helmut.hauser@IGI 15.01.2009 helmut.hauser@IGI Amortisierte Kosten 2-4-Bäume benötigen zusätzliche Operation, damit sie 2-4-Bäume bleiben und damit garantiert h=O(log n) besitzen. Danke für Ihre Aufmerksamkeit! Bis zum nächsten Mal. Potentielle Laufzeit: O(m*log(n)) ( Donnerstag, 22.Jan.2009, i13 ) Beobachtung: z.B. nach Spalt-Operation ist der Baum „ausgeglichener“. Æ Investierte Zeit rentiert sich später Æ Amortisierungsanalyse. Durchschnittliche Zeit über alle Operation (in unserem Fall: Einfügen, Löschen) im schlimmsten Fall. 15.01.2009 helmut.hauser@IGI 15.01.2009 helmut.hauser@IGI