Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Binärbäume.

Ähnliche Präsentationen


Präsentation zum Thema: "Binärbäume."—  Präsentation transkript:

1 Binärbäume

2 Baum Wurzel Knoten ohne Vorgänger Knoten beinhalten Daten z.B. Zahlen
Ast Kante Innerer Knoten Kein Blatt Blatt Knoten ohne Nachfolger

3 Baum Ein Baum ist eine Datenstruktur die folgende Eigenschaften besitzt: Es gibt genau einen Knoten, der keinen Vorgänger besitzt. Dieser wird als Wurzel bezeichnet. Alle Knoten des Baumes, außer Wurzel besitzen genau einen Vorgängerknoten. Ein Baum ist eine rekursive Datenstruktur ⇒ Der Baum besteht aus einer Wurzel und einer Reihe von Teilbäumen.

4 Binärbaum Begriffe: Knoten, Wurzel, innerer Knoten, Blatt, Ast
Binärbaum ist entweder ein leerer Baum oder er besteht aus einer Wurzel und zwei Binärbäumen.

5 Begriffe Knoten sind die eigentlichen Elemente, die über alle Informationen wie Daten und Zeiger zum rechten und linken Knoten verfügen. Wurzel – Dieser Knoten ist der einzige, der keinen Vorgänger besitzt. Ast = Kante. Die Knoten werden mit einem Ast verbunden. Blatt – Blätter sind Knoten, die keinen Nachfolger besitzen.

6 Binärer Suchbaum - Aufbau
Für jeden Knoten K eines Suchbaumes gilt: Die Schlüssel im linken Teilbaum von K sind kleiner als der Schlüssel von K Die Schlüssel im rechten Teilbaum von K sind größer als der Schlüssel von K Schlüssel ist die Zahl im Knoten Was passiert, wenn eine Zahl doppelt vorkommen würde?

7 Binärer Suchbaum - Aufbau
Für jeden Knoten K eines Suchbaumes gilt: Die Schlüssel im linken Teilbaum von K sind kleiner oder gleich als der Schlüssel von K Die Schlüssel im rechten Teilbaum von K sind größer als der Schlüssel von K

8 Suchbaum erstellen Es sind folgende Schlüssel gegeben bauen Sie einen Baum 5,2,3,1,8,9

9 Suchbaum erstellen Es sind folgende Schlüssel gegeben bauen Sie einen Baum 5,2,3,1,8,9 5 2 8 9 1 3

10 Suchbaum erstellen Es sind folgende Schlüssel gegeben bauen Sie einen Baum 5,12,3,1,8,7,15,4,3

11 Suchbaum erstellen Es sind folgende Schlüssel gegeben bauen Sie einen Baum 5,12,3,1,8,7,15,4,3 5 3 12 1 4 8 15 3 7

12 Warum Suchbaum In einem binären Suchbaum kann man Zahlen schnell finden. Finde die 9 5 2 8 9 1 3

13 Zeitkomplexität 5 2 8 9 1 3 Wie viele Elemente (Knoten) gab es? 6
Wie viele Vergleiche mussten wir machen? 3 Wie viele müssten wir im Besten Fall machen müssen? Wie viele im schlimmsten Fall?

14 Suche die Zahl 7 7 wäre rechts von 5 8 ist größer, also müsste die 7 links stehen Links ist kein Weg => 7 gibt es nicht! 5 2 8 9 1 3

15 Zeitkomplexität 5 2 8 9 1 3 Wie viele Vergleiche mussten wir machen? 2
Wie viele müssten wir im Besten und im schlimmsten Fall machen? Suchbaum ist effektiv beim Suchen (auch wenn die gesuchte Zahl nicht vorhanden wird).

16 Minimum und Maximum Den kleinsten (bzw. größten) Schlüssel im Suchbaum findet man, indem man solange in den linken (bzw. rechten) Teilbaum absteigt, bis man nicht mehr weiterkommt.

17 Knoten entfernen 5 2 8 9 1 3 Das einfachste: einen Blatt löschen.
Wenn der Knoten ein Kind hat? Z.B. die 8. 5 2 8 9 1 3

18 Knoten entfernen Wenn der Knoten zwei Kinder hat? Z.B. die 5. Dann kommt an seiner Stelle Der rechteste Knoten von linken Teilbaum oder das linkeste Vom rechten Teilbaum. 5 2 8 9 1 3

19 Knoten entfernen Wenn der Knoten zwei Kinder hat? Z.B. die 5. Dann kommt an seiner Stelle Der rechteste Knoten von linken Teilbaum oder das linkeste Vom rechten Teilbaum. 3 2 8 9 1 3

20 Knoten entfernen Wenn der Knoten zwei Kinder hat? Z.B. die 5. Dann kommt an seiner Stelle Der rechteste Knoten von linken Teilbaum oder das linkeste Vom rechten Teilbaum. 8 2 8 9 1 3

21 Suchbaum erstellen 8 5 3 Was fällt Dir auf? 1
Es sind folgende Schlüssel gegeben bauen Sie einen Baum 8,5,3,1 8 5 3 Was fällt Dir auf? 1

22 Suchbaum ist nicht balanciert
Auch dieser nicht. 6 5 8 3 1

23 Bäume sind ausgeglichen (balanciert)
wenn für jeden Knoten gilt: Die Höhe seines linken und rechten Teilbaums unterscheidet sich höchstens um 1.

24 Ausgeglichene (balancierte) Bäume

25 Höhe der balancierten Bäume
Wie hoch wird der Baum bei 255 Elementen? 5 Anzahl Ebenen Anzahl der Elemente 1 21-1 2 3 22-1 7 23-1 4 15 5 31 6 63 127 2 8 1 3 7 9 Anzahl der Ebenen ist log2(255+1). 28 = 256 Anzahl der Ebenen ist 8

26 Höhe der balancierten Bäume
Wie hoch wird der Baum bei 9 Elementen? 5 23 = 8 24 = 16 log2(9+1) = 3,.. => Drei Ebenen voll und die 4. Ebene wurde angefangen. 3 8 1 4 7 9 1 2

27 Höhe der balancierten Bäume
Die Höhe des balancierten Baumes bei n Elementen: log2(n+1) nach oben gerundet

28 Optimal balancierte Bäume
Alle Levels sind vollständig besetzt (bis auf die unterste Schicht). Höhe des Baumes log2(n+1). Dies ist die minimale Höhe für alle Suchbäume: => Optimaler Zeitaufwand für Suche

29 Zeitkomplexität Zeitaufwand für Suche O(log n)
bis zu den Blättern kommen. Der Zeitaufwand entspricht der Höhe des Baumes => log2(n+1) Es ist deutlich effektiver als in einem Array! Suchbäume werden in der Praxis oft genutzt beim Wörterbuch, oder Suche beim Google…

30 Aufgabe Füge in einen Baum folgende Knoten ein 6,1,9,8,4,3,7,11,2 Stelle dar, wie die 7 gesucht wird Entferne die 2,4 und 6

31 Traversierungen

32 Traversierungen PRE-ORDER V-L-R = POST-ORDER L-R-V = IN-ORDER L-V-R = 5 2 8 9 1 3 4

33 Traversierungen PRE-ORDER V-L-R = POST-ORDER L-R-V = IN-ORDER L-V-R = 5 2 8 9 1 3 4

34 Gib einen balancierten Baum an
Der folgende Schlüssel enthält: 12,5,3,1,8,7,15,4 Zahlen zuerst sortieren1,3,4,5,7,8,12,15 Diese Reihenfolge muss dem IN-ORDER entsprechen. Danach einen balancierten Baum zeichnen. Dann mit Zahlen füllen.

35 Binary Tree Sort Idee Die zu sortierende Elemente werden einfach in einem binären Suchbaumgespeichert. Um die Elemente in einer sortierten Reihenfolge zu erhalten, muss der Baum nur inorder traversiert werden.

36 Zeitkomplexität - Binary Tree Sort
Beim Einfügen eines Elements muss im Suchbaum sein Platz gefunden werden. Suchen benötigt O(log n) Zeit. Für n Elemente wären das insgesamt O(n log n) Zeit. Die Inorder-Traversierung benötigt nur O(n). Die Gesamtlaufzeit beträgt somit O(n log n).


Herunterladen ppt "Binärbäume."

Ähnliche Präsentationen


Google-Anzeigen