BÄUME BALANCIERTE BÄUME. Algorithmen & Datenstrukturen Prof. Dr. Wolfgang Schramm. 10. Kapitel (Teil 2)

Größe: px
Ab Seite anzeigen:

Download "BÄUME BALANCIERTE BÄUME. Algorithmen & Datenstrukturen Prof. Dr. Wolfgang Schramm. 10. Kapitel (Teil 2)"

Transkript

1 10. Kapitel (Teil 2) BÄUME BALANCIERTE BÄUME Algorithmen & Datenstrukturen Prof. Dr. Wolfgang Schramm

2 Übersicht 1 1. Einführung 2. Algorithmen 3. EigenschaDen von Programmiersprachen 4. Algorithmenparadigmen 5. Suchen & SorMeren 6. Hashing 7. Komplexität von Algorithmen 8. Abstrakte Datentypen (ADT) 9. Listen 10. Bäume 11. Graphen

3 Lernziele des Kapitels 2 2 Verstehen, wie balancierter Baum aussieht? Kennenlernen verschiedener Arten balancierter Bäume. Kennenlernen der speziellen OperaMonen, um balancierte Bäume im Gleichgewicht zu halten.

4 Inhalt 3 1. Balancierte Bäume n AVL- Bäume n B- Bäume 2. Weitere Bäume

5 Ausgeglichene Bäume 4 Problem 4 insert (6) 4 6 insert (8)

6 Ausgeglichene Bäume 5 Man muss dafür sorgen, dass ein Baum bei einer ungünsmgen Einfügereihenfolge nicht entartet. Idee: bei jeder Einfüge- oder LöschoperaMon versucht man den Baum auszugleichen. Beispiel: insert A G F E J ausgleichen C I C F I A E G J A

7 Ausgeglichene Bäume 6 AVL- Bäume (nach G.M. Adelson- Velskii und E.M. Landis): sind höhenbalanciert. Halten den Aufwand beim Ausgleichen begrenzt. B- Bäume (B wie balanciert, breit, buschig oder Bayer) sind n- äre Bäume: sind höhenbalanciert mit unausgeglichenem Verzweigungsgrad. Es gibt noch weitere ausgeglichene Bäume.

8 AVL - Bäume 7 AVL- Kriterium: Für jeden inneren Knoten ist der absolute Betrag der Differenz der Höhen des linken und des rechten Teilbaums maximal 1. Beispiel: Welcher Baum erfüllt die AVL- EigenschaD und welcher nicht? G I D J D J C F I C F E E G AVL-Baum Kein AVL-Baum

9 AVL - Bäume 8 Balance eines Knotens k: b(k) = height(k.led) height(k.right) Mit AVL- Kriterium: b(k) { - 1, 0, +1 } Einfügen in AVL- Baum: Knoten wird wie in normalen binären Suchbaum als Blao eingefügt. Durch das Einfügen kann die AVL- EigenschaD verletzt werden, d.h. die Balance eines Knotens kann auch die Werte 2 oder +2 annehmen b(k) { - 2, - 1, 0, +1, +2 }. Der Knoten ist somit außer Balance. Die Verletzung der AVL- EigenschaD muss durch Ausgleichen behoben werden. Das Ausgleichen erfolgt durch die Vertauschung von Knoten und damit einem neuen Layout des Baums. Diese Vertauschungen nennt man RotaMonen.

10 AVL Bäume Ausgleichsregeln 9 Wie wird bei Verletzungen der AVL- EigenschaDen ausgeglichen? Fallunterscheidungen: 1) Einfügen im linken Teilbaum des linken Kindes à RotaMon mit dem linken Kind. 2) Einfügen im rechten Teilbaum des linken Kindes à DoppelrotaMon mit dem linken Kind. 3) Einfügen im rechten Teilbaum des rechten Kindes à RotaMon mit dem rechten Kind. 4) Einfügen im linken Teilbaum des rechten Kindes à DoppelrotaMon mit dem rechten Kind. Wegen der Symmetrie der Fälle 1. und 3. bzw. 2. und 4. à Beschränkung auf 1. und 2.

11 AVL- Bäume - Balancierung k 2 k 3 Einfache Rotation (R) nach rechts k k 1 k 3 k 1 Rotation von k 2 über k k 3 Doppelrotation (LR) erst nach links, dann nach rechts k k 2 0 Rotation von k 1 über k 2 und k 3 k 2 k 3 k 1

12 Einfügen im linken Teilbaum des linken Kindes 1/ Einfügen rot = Balance Einfügen

13 Einfügen im linken Teilbaum des linken Kindes 2/ Ausgleich durch RotaMon (einfache Darstellung) Einfache RotaQon Einfache Rotation 2 nach rechts rot = Balance

14 Einfügen im rechtenteilbaum des linken Kindes 1/ Einfügen rot = Balance Einfügen

15 Einfügen im rechtenteilbaum des linken Kindes 2/ Ausgleich durch RotaMon (einfache Darstellung) DoppelrotaQon (LR) = RotaMon nach links und dann nach rechts. rot = Balance Rotation (L) Rotation (R)

16 AVL Bäume Anwendung der Ausgleichsregeln 15 Ausgleichen für den Knoten k für den das AVL- Kriterium verletzt ist. Fälle: 1. Einfügen im linken Teilbaum des linken Kindes à RotaMon des Knotens mit linkem Kind 2. Einfügen im rechten Teilbaum des linken Kindes. à DoppelrotaMon à RotaMon linkes Kind mit seinem rechten Kind à RotaMon des Knotens mit linken Kind Die Fälle Einfügen des rechten Kindes sind symmetrisch à hier nicht betrachtet.

17 Einfügen Änderung der Struktur 1/2 16 RotaMon (genaue Darstellung): LinksrotaMon von k. vorher nachher Wurzel k k.led linkes Kind der Wurzel k.led k.led.led rechte Kind der Wurzel k.right k li. Ki. des li. Ki. der Wurzel k.led.led k.led.led.led re.ki. des li. Ki. der Wurzel k.led.right k.led.led.right li. Ki. des re. Ki. der Wurzel k.right.led k.led.right re.ki. des re. Ki. der Wurzel k.right.right k.right Die nachher -Position bezieht sich immer auf den den neuen Wurzelknoten, der Pfad zu dem entsprechenden Knoten beginnt immer beim alten Wurzelknoten k.

18 Einfügen Änderung der Struktur 2/2 17 RotaMonen (genaue Darstellung): Einfache RotaQon rot = Balance Nur die blau markierten Referenzen werden geändert

19 ImplemenMerung AVL- Baum 1/4 20 public class AVLTreeNode { Element value; TreeNode left; TreeNode right; int balance; // reicht aus boolean isbalanced; // redundant! } // Konstruktor public AVLTreeNode (Element value, AVLTreeNode left, AVLTreeNode right) { this.value = value; this.left = left; this.right = right; balance = 0; }

20 ImplemenMerung AVL- Baum 2/4 21 public class AVLTree { AVLTreeNode root; // Konstruktoren public AVLTree ( ) { } public AVLTree (Element v) { root = new AVLTreeNode (v, null, null); }...

21 ImplemenMerung AVL- Baum 3/4 22 RotaMon (Methode in AVLTree) private TreeNode rotateleft (TreeNode t) { TreeNode tmp = t.right; t.right = t.right.left; tmp.left = t; return tmp; } Analog rotateright

22 ImplemenMerung AVL- Baum 4/4 23 DoppelrotaMon (verwendet in AVLTree) 2 RotaMonen DoppelrotaMon links = Rot. Rechts + Rot. Links... r.right = rotateright (r.right); TreeNode tmp = rotateleft (r); // tmp ist neue Wurzel...

23 ImplemenMerung AVL- Baum - Einfügen 1/8 24 Idee Einfügen des neuen Knotens als Blao (wie Binärbaum). Anschließend ggf. Ausgleichen durch RotaMon. Es gilt n Es müssen höchstens Knoten auf dem Weg vom eingefügten Blao zur Wurzel ausgeglichen werden. n Es muss höchstens ein Knoten ausgeglichen werden (d.h. höchstens eine RotataMon oder DoppelrotaMon). Grundlage Rekursives insert (= insertr) für Binärbaum. Rekursiv, da dann Weg von Einfügeknoten zu Wurzel verfügbar ist.

24 ImplemenMerung AVL- Baum - Einfügen 2/8 25 (Methode in AVLTree) public void insert (Element p) { if (root == null) { root = new AVLTreeNode (p); } else { root = insertr (root, p); } }

25 ImplemenMerung AVL- Baum - Einfügen 3/8 26 private AVLTreeNode insertr ( AVLTreeNode t, Element p) {... } 1. Grundlage: rekursives Einfügen des Binärbaums. 2. Erweiterung: Rebalancieren a) Feststellen, ob rebalanciert werden soll: I. ein Knoten hat die Balance 1 (linker Unterbaum größer) UND es wurde im linken Unterbaum eingefügt II. Der Baum wurde noch nicht rebalanciert (nur ein Rebalancieren notwendig bei Einfügen!) b) Rebalancieren & Balance aktualisieren

26 ImplemenMerung AVL- Baum - Einfügen 4/8 27 private TreeNode insertr (TreeNode t, int i) { // t not equal null! } if (i < t.val) { // left subtree if (t.left == null) { // no subtree insert node t.left = new TreeNode (i); } else { // insert in right subtree t.left = insertr (t.left, i); } } else if (i == t.val) { // nothing to do } else { // i > t.val // right subtree analogue left subtree } Zu 1. Grundlage: rekursives Einfügen im Binärbaum

27 ImplemenMerung AVL- Baum - Einfügen 5/8 28 Zu 2 a I: linker Unterbaum größer (Balance 1) UND in linken Unterbaum wurde eingefügt Nach dem Einfügen (rekursiver insertr- Aufruf): t.balance == 1 && Math.abs (t.left.balance) == 1 Anmerkung: nach dem Einfügen kann die Balance auf 0 sein in dem Fall ist der Baum jedoch bereits balanciert

28 ImplemenMerung AVL- Baum - Einfügen 6/8 29 Zu 2 a II: Baum noch nicht rebalanciert Beim Absteigen durch die rekursiven Aufrufe: in jedem besuchten Knoten t: t.isbalanced = false Beim Aufsteigen : 1. t.isbalanced = t.left.isbalanced falls der Unterbaum bereits balanciert wurde, dann ist auch der übergeordnete balanciert 2. Setze t.isbalanced = true falls der Baum balanciert wird bzw. ist: n RotaMonen n Es gibt Knoten gleichen Niveaus mit eingefügtem Knoten in rechten Unterbaum Baum hat die Balance 0

29 ImplemenMerung AVL- Baum - Einfügen 7/8 30 Zu 2 b Balancieren (nur falls noch nicht balanciert wurde) Balance der Wurzel erhöht sich um 1 Falls Balance == 2 n Balancierregeln anwenden n RotaMon oder DoppelrotaMon n Balancen neu berechnen n Neue Wurzel: Balance = 0 n RechtsrotaMon right (ehemalige Wurzel): Balance = 0 n DoppelrotaMon: neue Balancen = alte Balance der neuen Wurzel 1-1 led 0 1 right - 1 0

30 ImplemenMerung AVL- Baum - Einfügen 8/8 31 Java Programm

31 AVL- Bäume Beispiel für Balancierung Tb 1 Tb 4 Tb 2 Tb 3 Welche Aussagen kann man über die Höhenverhältnisse der Teilbäume machen? In welche Teilbäume kann man noch Knoten einfügen, ohne dass einer der angegebenen Knoten aus der Balance gerät?

32 AVL- Bäume Beispiel für Balancierung 33-1 k 1 0 k2 k 1 0 k 2 0 Tb 1 Tb2 Tb3 Tb 1 Tb 2 Tb 3 Welche Aussagen kann man über die Höhenverhältnisse der Teilbäume machen? In welche Teilbäume kann man noch Knoten einfügen, ohne dass einer der angegebenen Knoten aus der Balance gerät?

33 ImplemenMerung AVL- Baum - Löschen Grundlage: rekursives Löschen im Binärbaum 2. Erweiterung: Rebalancieren a) Feststellen, ob rebalanciert werden soll n Betrachten des ganzen Pfades von der Wurzel bis zum gelöschten Element und zurück. n Balancieren mehrerer Knoten möglich. b) Rebalancieren & Balance aktualisieren

34 Mehrwegbäume: MoMvaMon 1/2 36 Mit AVL- Bäumen: Bäume sind ausgeglichen à Anzahl der OperaMonen ist begrenzt. Was ist, wenn der Baum zu groß für den Hauptspeicher ist? Externe Datenspeicherung Speicherhierarchie: Register (< 1kB) 1 ns Cache (L2) (0,5-2 MB) 3 ns Hauptspeicher (512 MB 8 GB) 20 ns Festplaoe ( GB) 7 ms Zugriffsverhältnis zwischen Hauptspeicher und Festplaoe: t(plaoe) / t(hauptspeicher) = (7 10-3) / ( ) =

35 Mehrwegbäume: MoMvaMon 2/2 37 è Zugriff auf (externe) Knoten sehr teuer. Beispiele: Dateibaum des Datei- Systems. Tabellen von Datenbanken (DB2 (IBM), Sybase, Oracle,...). à Man häoe gerne einen Baum, der noch geringere Tiefe hat als log 2 n. Idee: Erhöhe die Basis des Logarithmus (à Mehrweg- Baum). Speichere mehrere "aufeinanderfolgende" Baum- Knoten auf derselben Seite (Page) auf der Plaoe. à Reduziere damit die Anzahl der Seitenzugriffe.

36 m- Wege- Baum 38 Ein m- Wege- Suchbaum ist eine Verallgemeinerung eines binären Suchbaumes (d. h., ein binärer Suchbaum ist ein 2- Wege- Suchbaum). 1 Seite Wenn die Knoten des Baums jeweils wie eingerahmt auf einer Seite liegen, findet man einen Wert mit maximal 2 Zugriffen auf einem externen Speicher, stao mit max. 5 Zugriffen, wenn das nicht garanmert ist.

37 Mehrwegebaum: DefiniMon 39 In einem m- Wege- Baum haben alle Knoten den Grad m. Der Baum ist entweder leer oder besitzt folgende EigenschaDen: Jeder Knoten hat folgende Struktur: k 1 k 2 k 3 k 4 k i sind die Schlüssel, 1 i m- 1. t 0 t 1 t 2 t 3 t 4 m- 1 ist die Anzahl der Schlüssel im Knoten. t i sind die Zeiger zu den Unterbäumen des Knotens. Schlüssel innerhalb eines Knotens sind aufsteigend geordnet: Beispiel: m = 5 k 1 k 2... k m- 1 Alle Schlüssel im Unterbaum t i sind kleiner als k i+1, für 0 i < m- 1. Alle Schlüssel im Unterbaum t m- 1 sind größer als k m- 1. Die Unterbäume t i, für 0 i m- 1, sind ebenfalls m- Wege- Bäume.

38 EigenschaDen von m- Wege- Bäumen 40 Baum ist nicht ausgeglichen. Bläoer sind auf verschiedenen Stufen Bei Veränderungen gibt es keinen Ausgleichsalgorithmus. Schlechte Speicherausnutzung, kann zu verkeoeten Listen degenerieren. Anzahl der Knoten im vollständigen m- Wege Baum mit Höhe h: Maximale Anzahl n von Schlüsseln: h 1 ANZ = i K m = i=0 n Anz K *(m- 1) = m h - 1 h m 1 m 1 Völlig degenerierter Baum: n = Anz K = h Grenze für die Höhe eines m- Wege- Baumes: log m (n+1) h n.

39 Prinzip des B- Baums 41 B- Baum- Kriterium Alle Pfade von der Wurzel bis zu den Bläoern sind gleich lang. Jeder Knoten außer der Wurzel enthält zwischen m und 2m Schlüsselwerte. Jeder Knoten (außer der Wurzel) hat zwischen m+1 und 2m+1 Kinder (Unterbäume). Die Wurzel ist entweder ein Blao oder hat mindestens 2 Kinder. B- Baum Ein B- Baum ist ein Baum, der das B- Baum- Kriterium erfüllt (für ein gegebenes m). m heißt Ordnung eines B- Baums.

40 B- Baum EigenschaDen der Knoten 1/2 42 e 1 e 2 e 3 e 4 geordnet: Knoten k aus b 2 : Elemente e aus k: e 1 < e < e 2 b 1 b 2 b 3 b 4 b 5

41 B- Baum EigenschaDen der Knoten 2/2 43 Baum der Ordnung m: m < i < 2m e 1 e 2 e 3 e i Max. Anzahl von Elementen: 2m Max. Anzahl von Unterbäumen: 2m+1 b 1 b 2 b 3 b i b i+1

42 B- Baum - Beispiel

43 B- Baum: DefiniMon 46 Ein Baum heißt B- Baum der Ordnung m, wenn er folgende EigenschaDen erfüllt: 1. Jeder Knoten enthält höchstens 2 m Elemente. 2. Jeder Knoten außer dem Wurzelknoten enthält mindestens m Elemente. Der Wurzelknoten enthält mindestens ein Element. 3. Jeder Knoten ist entweder ein Blao ohne Nachfolger oder hat i+1 Nachfolger, falls i die Anzahl der Elemente ist. 4. Alle Bläoer liegen auf dem gleichen Niveau. 5. Ist e i ein Element, dann sind im linken Nachfolgeknoten (v i ) alle Schlüssel kleiner und im rechten (v i+1 ) alle größer (Ordnungskriterium). Bemerkung: Die Terminologie im Zusammenhang mit B-Bäumen ist in der Literatur nicht ganz einheitlich. Oft wird auch der maximale Verzweigungsgrad (in unserem Fall 2 m + 1) als Ordnung bezeichnet etwa von D. Knuth. Deshalb muss man die jeweilige Definition immer genau beachten!

44 B- Bäume: 2-3 Bäume 47 Ein B- Baum der Ordnung 1 hat pro Knoten mindestens 1 höchstens 2 Elemente. pro Knoten mindestens 2 höchstens 3 Kinder. Man nennt einen B- Baum der Ordnung 1 auch 2-3 Baum, wenn man damit die minimale und maximale Anzahl der Kinder eines Knotens angibt. Diese Art der KlassifikaMon von B- Bäumen wird insbesondere dann verwendet, wenn man den maximalen Verzweigungsgrad für die Ordnungsangabe heranzieht.

45 B- Bäume Aufnahmekapazität 48 Maximale Höhe eines B- Baums der Ordnung m bei minimaler Füllung: Sind dort n Knoten unterzubringen, gilt für die Höhe h = log m n. Die Höhe eines B- Baums ist logarithmisch in der Anzahl der gespeicherten Schlüssel beschränkt. Die Ordnung eines B- Baums liegt üblicher Weise bei B- Bäume sind auch bei einer sehr großen Zahl von gespeicherten Schlüsselwerten besonders niedrig. Frage: Wie viele Schlüssel kann ein B- Baum der Ordnung m = 50 bei einer Höhe von h = 4 maximal aufnehmen?

46 B- Bäume: Suchen 49 Suchen = KombinaMon des Verfolgens von Verweisen (wie im binären Suchbaum) und der Suche in einer sormerten Folge. Gesucht wird nach dem Wert w. Man beginnt im Wurzelknoten und besmmmt dort den Eintrag, für den gilt: e i w. Ist e i = w, dann ist man fermg (man hat w gefunden). Sonst geht man zum Knoten v i, d.h. man folgt dem Verweis, der vor e i liegt. Gibt es kein Element mit e i w, dann folgt man dem letzen Verweis des Knotens. Findet man den Wert w auch auf einer erreichten Blaoseite nicht, dann ist der Wert nicht im Baum enthalten.

47 Ein Beispiel B- Baum

48 B- Baum Einfügen 1/2 51 Ziel: Einfügen eines Wertes (Elements) w in den B- Baum. Die B- Baum EigenschaD (m Anzahl der Elemente pro Knoten 2m) darf nicht verletzt werden. 1. Suchen des Blaoknotens, in dem eingefügt werden muss (müsste). 2. PosiMon im gefundenen Knoten mit 3 Fallunterscheidungen: a) Es gibt 2 Elemente s und b mit s < w < b. b) Ein Element s als kleinstes Element des Knotens mit w < s; dabei ist s das am weitesten links stehende Element. c) Ein Element b als größtes Element des Knotens mit b < w; dabei ist b das am weitesten rechts stehende Element. 3. Einfügen des Elements mit 2 Fallunterscheidungen : a) Der Knoten enthält bisher < 2m Elemente: dann muss man nur noch an der richmgen PosiMon einfügen. b) Der Knoten enthält bereits 2m Elemente. Dann platzt der Knoten beim Einfügen eines weiteren Elements. D.h. es muss ein neuer Knoten eingeführt werden, dadurch ändert sich auch die Knotenstruktur des Baums.

49 B- Baum Einfügen 2/2 52 Erzeugen eines neuen Knotens: 1. Die ersten m Werte bleiben im Originalknoten. 2. Die letzten m Werte werden in den neuen Knoten verschoben. 3. Das miolere Element wandert in den Elternknoten nach oben. Da der Elternknoten ein Element mehr aufnimmt, kann er auch platzen (Anzahl der Elemente in Elternknoten > 2m) der Prozess des Erzeugens eines neuen Knotens beginnt von neuem und setzt sich rekursiv fort bis in den Wurzelknoten. Platzt auch der Wurzelknoten, dann wird auch er geteilt und ein neuer Elternknoten (ein neuer Wurzelknoten) erzeugt, d.h. wächst der Baum um eine Ebene. Feststellung: B- Bäume wachsen in Richtung Wurzel anders als die bisherigen Bäume. Es gibt eine Ausgleichsvariante è später

50 B- Baum Einfügen 1/2 53 insert Der Blattknoten platzt! Split in 2 Knoten (alten + einen neuen)

51 B- Baum Einfügen 2/

52 B- Baum Löschen 1/3 55 Im Prinzip ähnlich wie Einfügen nur mit umgekehrten Effekten. Ein Knoten kann defizitär werden, d.h. durch Entnahme kann die Anzahl der Elemente im Knoten < m werden. 1. Suchen des Knotens, aus dem das Element w en ernt werden soll. 2. En ernen im gefundenen Knoten mit 2 Fallunterscheidungen: a) Liegt w in einem Blaoknoten, dann kann das Element gelöscht werden. Bleiben auf dem Blaoknoten weniger als m Elemente übrig, dann ist ein Defizit (Unterlauf) zu behandeln. b) Liegt w in einem inneren Knoten, dann wird das Element gelöscht und durch das nächst kleinere Element von einem Blaoknoten ersetzt (ähnlich wie beim binärem Suchbaum, wo man das größte Element im linken Teilbaum einsetzte). Bleiben auf dem Blaoknoten weniger als m Elemente übrig, dann ist ein Defizit zu behandeln. Man ist am Ende immer in einem Blaoknoten angekommen.

53 B- Baum Löschen 2/ Behandlung des Defizits (Unterlaufs) mit 2 Fallunterscheidungen: a) Ausgleichen zweier benachbarter Knoten: wenn der Nachbarknoten n (n > m) Elemente enthält, dann kann sie einen Knoten abgeben. Dabei werden die Elemente der beiden beteiligten Knoten sowie das eingeschlossene Element auf dem Elternknoten neu verteilt, so dass beide Kinder(knoten) mindestens m Elemente enthalten. b) Vereinigen zweier benachbarter Knoten: wenn ein Ausgleich nicht möglich ist das ist dann der Fall, wenn der Nachbarknoten n = m Elemente enthält werden die beiden Knoten zusammengefasst. Zusätzlich wird noch das eingeschlossene Element aus dem Elternknoten herunter gezogen. Dieser neue Blaoknoten hat jetzt n = 2m Elemente (m- 1 von dem Knoten, wo ein Element en ernt wurde, m vom Nachbarknoten und 1 vom Elternknoten). c) Jetzt kann auch der Elternknoten defizitär werden (es wurde ja ein Element entnommen) der Prozess der Unterlau ehandlung eines Knotens beginnt von neuem und setzt sich rekursiv fort bis in den Wurzelknoten.

54 B- Baum Löschen 3/3 57 Wird auch das letzte und einzige Element im Wurzelknoten en ernt, dann werden die beiden darunter liegenden Knoten vereinigt. Der Baum schrumpd um eine Ebene von der Wurzel her. Feststellung: B- Bäume schrumpfen an der Wurzel anders als die bisherigen Bäume.

55 58 delete 22 B- Baum Löschen mit Ausgleichen

56 59 delete 43 B- Baum Löschen mit Vereinigen

57 60 insert 16 B- Baum Einfügen- Variante 1/ Der Blattknoten platzt! Ausgleich mit Nachbarknoten statt Split.

58 B- Baum Einfügen- Variante 2/ B*- Baum (nach Donald Knuth, 1973) Knoten müssen mindestens zu 2/3 gefüllt sein (anstao nur 1/2). Durch veränderte Split- Strategie: 2 volle Knoten auf 3 Knoten mit einem Füllgrad von 2/3 audeilen.

59 B- Bäume: Zusammenfassung 62 Vielleicht die Datenstruktur, die in der Praxis am meisten benutzt wird. B- Bäume sind ausgeglichene m- Wege- Bäume. Man wählt i.a. die Ordnung m gerade so groß, dass jeweils alle Schlüssel eines B- Knotens genau einer page ( = Übertra- gungseinheit, d.h. Blockgröße bei einem Lesezugriff typisch 4-16 kbyte) entsprechen: Typische Größen, z.b. m = 50 oder m = Sehr flache Bäume. Kurzer Weg von der Wurzel zu den Bläoern.

60 Weitere Bäume 63 Bruderbäume AVL- Bäume mit Bläoern gleichen Niveaus Innere Knoten dürfen nur ein Kind haben Treaps randomisierte Suchbäume Problem: Einfügen einer Folge geordneter Elemente erzeugt degenerierten Baum (Liste Abhilfe: Eingabefolgen zufällig vertauschen Digitale Bäume Tries Patriciabäume

Mehrwegbäume Motivation

Mehrwegbäume Motivation Mehrwegbäume Motivation Wir haben gute Strukturen (AVL-Bäume) kennen gelernt, die die Anzahl der Operationen begrenzen Was ist, wenn der Baum zu groß für den Hauptspeicher ist? Externe Datenspeicherung

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

ADS: Algorithmen und Datenstrukturen

ADS: Algorithmen und Datenstrukturen ADS: Algorithmen und Datenstrukturen Teil X Peter F. Stadler & Konstantin Klemm Bioinformatics Group, Dept. of Computer Science & Interdisciplinary Center for Bioinformatics, University of Leipzig 13.

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

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

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

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

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

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

C G C C G C. Löschen von Knoten. Beispiel: Löschen von k =

C 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

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

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

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Balancieren eines Suchbaums Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 396 Baumgestalt vs. Zeitkomplexität Vorteile eines ausgeglichenen binären Suchbaums

Mehr

7. Dynamische Datenstrukturen Bäume. Informatik II für Verkehrsingenieure

7. Dynamische Datenstrukturen Bäume. Informatik II für Verkehrsingenieure 7. Dynamische Datenstrukturen Bäume Informatik II für Verkehrsingenieure Übersicht dynamische Datenstrukturen Wozu? Oft weiß man nicht von Beginn an, wieviele Elemente in einer Datenstruktur untergebracht

Mehr

Wünschenswerte Eigenschaft von Suchbäumen mit n Knoten: Suchen, Einfügen, Löschen auch im schlechtesten Fall O(log n)

Wünschenswerte Eigenschaft von Suchbäumen mit n Knoten: Suchen, Einfügen, Löschen auch im schlechtesten Fall O(log n) .6 Ausgeglichene Mehrweg-Suchbäume Wünschenswerte Eigenschaft von Suchbäumen mit n Knoten: Suchen, Einfügen, Löschen auch im schlechtesten Fall O(log n) Methoden: lokale Transformationen (AVL-Baum) Stochastische

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

Algorithmen und Datenstrukturen. Bäume. M. Herpers, Y. Jung, P. Klingebiel

Algorithmen 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

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

t-äre Bäume können - wie Binärbäume - degenerieren, d.h. durch ungünstige Einfügereihenfolge kann ein unausgewogener Baum mit großer Höhe entstehen.

t-äre Bäume können - wie Binärbäume - degenerieren, d.h. durch ungünstige Einfügereihenfolge kann ein unausgewogener Baum mit großer Höhe entstehen. .3 B-Bäume t-äre Bäume können - wie Binärbäume - degenerieren, d.h. durch ungünstige Einfügereihenfolge kann ein unausgewogener Baum mit großer Höhe entstehen. Wird der t-äre Baum zur Verwaltung von Daten

Mehr

Informatik II Vorlesung am D-BAUG der ETH Zürich

Informatik II Vorlesung am D-BAUG der ETH Zürich Informatik II Vorlesung am D-BAUG der ETH Zürich Vorlesung 9, 2.5.2016 [Nachtrag zu Vorlesung : Numerische Integration, Zusammenfassung Objektorientierte Programmierung] Dynamische Datenstrukturen II:

Mehr

Komplexität eines Algorithmus, Grössenordnung, Landau-Symbole, Beispiel einer Komplexitätsberechnung (Mergesort) 7. KOMPLEXITÄT

Komplexität eines Algorithmus, Grössenordnung, Landau-Symbole, Beispiel einer Komplexitätsberechnung (Mergesort) 7. KOMPLEXITÄT Komplexität eines Algorithmus, Grössenordnung, Landau-Symbole, Beispiel einer Komplexitätsberechnung (Mergesort) 7. KOMPLEXITÄT Komplexität eines Algorithmus Algorithmen verbrauchen Ressourcen Rechenzeit

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

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen Bäume sind verallgemeinerte Listen Datenstrukturen Teil 2 Bäume Jeder Knoten kann mehrere Nachfolger haben Sie sind weiter spezielle Graphen Graphen bestehen aus Knoten und Kanten Kanten können gerichtet

Mehr

Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...)

Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...) Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...) Inhalt: Einleitung, Begriffe Baumtypen und deren Kodierung Binäre Bäume Mehrwegbäume Prüfer

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

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

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

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

Algorithmen und Datenstrukturen I Bruder-Bäume

Algorithmen und Datenstrukturen I Bruder-Bäume Algorithmen und Datenstrukturen I Bruder-Bäume Prof. Dr. Oliver Braun Letzte Änderung: 11.12.2017 10:50 Algorithmen und Datenstrukturen I, Bruder-Bäume 1/24 Definition ein binärer Baum heißt ein Bruder-Baum,

Mehr

Vorlesung Datenstrukturen

Vorlesung 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

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

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

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

13. Bäume: effektives Suchen und Sortieren

13. Bäume: effektives Suchen und Sortieren 13. Bäume: effektives Suchen und Sortieren Java-Beispiele: Baum.java Traverse.java TraverseTest.java Version: 25. Jan. 2016 Schwerpunkte Aufgabe und Vorteile von Bäumen Sortieren mit Bäumen Ausgabealgorithmen:

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

13. Bäume: effektives Suchen und Sortieren

13. Bäume: effektives Suchen und Sortieren Schwerpunkte Aufgabe und Vorteile von Bäumen 13. Bäume: effektives Suchen und Sortieren Java-Beispiele: Baum.java Traverse.java TraverseTest.java Sortieren mit Bäumen Ausgabealgorithmen: - Preorder - Postorder

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

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

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

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Entartete Suchbäume. Beispiel: Balancieren von Suchbaum. Wintersemester 2012/13

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Entartete Suchbäume. Beispiel: Balancieren von Suchbaum. Wintersemester 2012/13 Programm heute Algorithmen und Datenstrukturen (für ET/IT) Wintersemester / Fortgeschrittene Datenstrukturen Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 8 Such-Algorithmen

Mehr

Balancierte Binär- und B-Bäume

Balancierte Binär- und B-Bäume Balancierte Binär- und B-Bäume Sie kennen die Kriterien um die Ausgeglichenheit von Binär- Bäumen zu bestimmen Sie wissen, was B-Bäume und rot-schwarz Bäume sind und wie man sie ausgleicht Suchen und Tiefe

Mehr

Balancierte Binär- und B-Bäume

Balancierte Binär- und B-Bäume Balancierte Binär- und B-Bäume Sie kennen die Kriterien um die Ausgeglichenheit von Binär- Bäumen zu bestimmen Sie können AVL Bäume implementieren Sie wissen, was B-Bäume und rot-schwarz Bäume sind und

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 17/18. Kapitel 14. Bäume. Bäume 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 17/18. Kapitel 14. Bäume. Bäume 1 Kapitel 14 Bäume Bäume 1 Ziele Den Begriff des Baums in der Informatik kennenlernen Bäume als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf Bäumen verstehen und schreiben können

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 14. Bäume. Bäume 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 14. Bäume. Bäume 1 Kapitel 14 Bäume Bäume 1 Ziele Den Begriff des Baums in der Informatik kennenlernen Bäume als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf Bäumen verstehen und schreiben können

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

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

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

Balancierte Suchbäume

Balancierte 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

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 13. Bäume. Bäume 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 13. Bäume. Bäume 1 Kapitel 13 Bäume Bäume 1 Ziele Den Begriff des Baums in der Informatik kennenlernen Bäume als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf Bäumen verstehen und schreiben können

Mehr

Algorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein.

Algorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein. Aufgabe 10 Binäre Bäume a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge, 28, 35, 31, 9, 4,, 17, 37, 25 ein. 1. Einfügen von : 3. Einfugen von 35: 2. Einfügen von 28: 28 28 10. Einfügen

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Lernziele Die Definition wichtiger Begriffe im Zusammenhand mit Bäumen zu kennen. Markierte Bäumen, insbesondere Suchbäume,

Mehr

Teil 1: Suchen. Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume Ausgeglichene Bäume. B-Bäume Digitale Suchbäume Heaps

Teil 1: Suchen. Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume Ausgeglichene Bäume. B-Bäume Digitale Suchbäume Heaps Teil 1: Suchen Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume Ausgeglichene Bäume AVL-Bäume Splay-Bäume B-Bäume Digitale Suchbäume Heaps M.O.Franz; Oktober 2007 Algorithmen und

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

Algorithmen und Datenstrukturen 1-5. Seminar -

Algorithmen 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

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

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

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

18. Natürliche Suchbäume

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

4.3 Bäume. Definition des Baumes. Bäume sind eine sehr wichtige Datenstruktur der Informatik.

4.3 Bäume. Definition des Baumes. Bäume sind eine sehr wichtige Datenstruktur der Informatik. 4.3 Bäume Bäume sind eine sehr wichtige Datenstruktur der Informatik. Definition des Baumes Ein Baum besteht aus einer nichtleeren Menge von Knoten und einer Menge von Kanten. Jede Kante verbindet genau

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

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 10. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Suchverfahren für große Datenmengen bisher betrachtete Datenstrukturen

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

Teil 1: Suchen. Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume Ausgeglichene Bäume B-Bäume Digitale Suchbäume

Teil 1: Suchen. Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume Ausgeglichene Bäume B-Bäume Digitale Suchbäume Teil 1: Suchen Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume Ausgeglichene Bäume B-Bäume Digitale Suchbäume M.O.Franz; Oktober 07 Algorithmen und Datenstrukturen - B-Bäume 1-1

Mehr

Dynamische Datenstrukturen

Dynamische Datenstrukturen Dynamische Datenstrukturen B-Bäume größere Datenmengen verwalten Extern speichern Art der Speicherung berücksichtigen sonst kein optimaler Datenzugriff möglich Art der Speicherung großer Datenmengen Magnetplatten

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

Verkettete Datenstrukturen: Bäume

Verkettete Datenstrukturen: Bäume Verkettete Datenstrukturen: Bäume 1 Graphen Gerichteter Graph: Menge von Knoten (= Elementen) + Menge von Kanten. Kante: Verbindung zwischen zwei Knoten k 1 k 2 = Paar von Knoten (k 1, k 2 ). Menge aller

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

Informatik II Prüfungsvorbereitungskurs

Informatik II Prüfungsvorbereitungskurs Informatik II Prüfungsvorbereitungskurs Tag 4, 9.6.2017 Giuseppe Accaputo g@accaputo.ch 1 Aufbau des PVK Tag 1: Java Teil 1 Tag 2: Java Teil 2 Tag 3: Algorithmen & Komplexität Tag 4: Dynamische Datenstrukturen,

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

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

Technische Universität München. Vorlesungsgrobstruktur: wo stehen wir, wie geht s weiter

Technische Universität München. Vorlesungsgrobstruktur: wo stehen wir, wie geht s weiter Vorlesungsgrobstruktur: wo stehen wir, wie geht s weiter Kapitel 7 Fortgeschrittene Datenstrukturen Motivation: Lineare Liste: Suchen eines Elements ist schnell O(log n) Einfügen eines Elements ist langsam

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

Natü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: :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

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

elementare Datenstrukturen

elementare Datenstrukturen elementare Datenstrukturen Wie die Daten das Laufen lernten Andreas Ferber af@myipv6.de elementare Datenstrukturen p./40 KISS elementare Datenstrukturen p./40 KISS (Keep It Simple, Stupid) Immer die einfachste

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

Übung Datenstrukturen. Bäume

Ü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

Mehr

Algorithmen und Datenstrukturen, FS17 Prof Dr Christian Tschudin

Algorithmen und Datenstrukturen, FS17 Prof Dr Christian Tschudin Departement Mathematik und Informatik Algorithmen und Datenstrukturen, FS17 Prof Dr Christian Tschudin 5. April 2017 Suchbäume I Andrew D. Booth Algorithmen und Datenstrukturen, FS17 5. April 2017 2 /

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

4. Tries und kd-bäume

4. Tries und kd-bäume 4. Tries und kd-bäume Digitale Suchbäume (Tries) kd-bäume Prof. Dr. O. Bittel, HTWG Konstanz Algorithmen und Datenstrukuren Tries und kd-bäume SS 2019 4-1 Tries (1) Problem mit den bisherigen Suchbäumen

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 1

Algorithmen 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

Mehr

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Der 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

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

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. Algorithmen und Datenstrukturen. B6.1 Einführung. B6.2 Symboltabellen. B6.3 Einfache Implementationen

Algorithmen 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

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

7. Sortieren Lernziele. 7. Sortieren

7. Sortieren Lernziele. 7. Sortieren 7. Sortieren Lernziele 7. Sortieren Lernziele: Die wichtigsten Sortierverfahren kennen und einsetzen können, Aufwand und weitere Eigenschaften der Sortierverfahren kennen, das Problemlösungsparadigma Teile-und-herrsche

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

3.8 Bäume. Definition des Baumes

3.8 Bäume. Definition des Baumes 3.8 Bäume Definition des Baumes Ein Baum besteht aus einer nichtleeren Menge von Knoten und einer Menge von Kanten. Jede Kante verbindet genau zwei Knoten. Die Knoten (nodes) enthalten Datenelemente. Die

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

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

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

B-Bäume. Suchbäume. Suchen, Einfügen, Löschen. Thomas Röfer. Balancierte Bäume (AVL-Bäume) Universität Bremen. Bäume 2

B-Bäume. Suchbäume. Suchen, Einfügen, Löschen. Thomas Röfer. Balancierte Bäume (AVL-Bäume) Universität Bremen. Bäume 2 Bäume 2 Thomas Röfer Suchbäume Suchen, Einfügen, Löschen Balancierte Bäume (AVL-Bäume) B-Bäume Rückblick Bäume 1 Begriffe Durchlaufen von Bäumen Spielprobleme Eigene Züge Gegnerische Züge Eigene Züge Gegnerische

Mehr