• Keine Ergebnisse gefunden

B4. Intermezzo - B¨ aume

N/A
N/A
Protected

Academic year: 2022

Aktie "B4. Intermezzo - B¨ aume"

Copied!
5
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Algorithmen und Datenstrukturen

B4. Intermezzo - B¨ aume

Marcel L¨ uthi and Gabriele R¨ oger

Universit¨ at Basel

28. M¨ arz 2019

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 28. M¨arz 2019 1 / 19

Algorithmen und Datenstrukturen

28. M¨ arz 2019 — B4. Intermezzo - B¨ aume

B4.1 Definitionen und Eigenschaften B4.2 Traversierung

B4.3 Datenstruktur

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 28. M¨arz 2019 2 / 19

B4. Intermezzo - B¨aume Definitionen und Eigenschaften

B4.1 Definitionen und Eigenschaften

B4. Intermezzo - B¨aume Definitionen und Eigenschaften

Was ist ein Baum

I Struktur um Daten hierarchisch anzuordnen.

(2)

B4. Intermezzo - B¨aume Definitionen und Eigenschaften

Was ist ein Baum

Rekursive Definition

Ein Baum T der Ordnung n ist I der leere Baum,

I oder besteht aus einem Knoten (der Wurzel) sowie maximal n B¨ aumen (den Unterb¨ aumen von T ).

Vergleiche mit Definition von Liste:

Eine Liste L ist I die leere Liste

I oder ein Element H (Head) gefolgt von einer Liste.

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 28. M¨arz 2019 5 / 19

B4. Intermezzo - B¨aume Definitionen und Eigenschaften

Beispiele

Eine Liste ist ein Spezialfall eines Baumes (Baum der Ordnung 1)

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 28. M¨arz 2019 6 / 19

B4. Intermezzo - B¨aume Definitionen und Eigenschaften

Terminologie

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 28. M¨arz 2019 7 / 19

B4. Intermezzo - B¨aume Definitionen und Eigenschaften

Wichtigster Spezialfall: Bin¨ arbaum

Bin¨ arbaum (Binary Tree) Ein Bin¨ arbaum T ist

I der leere Baum

I oder besteht aus einem Knoten (genannt Wurzel) sowie maximal 2 B¨ aumen (den Unterb¨ aumen von T ).

I Bin¨ arb¨ aume haben jede Menge Anwendungen I Unser aktueller Fokus

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 28. M¨arz 2019 8 / 19

(3)

B4. Intermezzo - B¨aume Definitionen und Eigenschaften

Terminologie (2)

I Voller Bin¨ arbaum: Jeder Knoten hat 0 oder 2 Kinder

I Vollst¨ andiger (oder kompletter) Bin¨ arbaum: Alle Ebenen sind vollst¨ andig gef¨ ullt ausser evtl. die letzte Ebene wobei nur Bl¨ atter rechts fehlen d¨ urfen.

I Perfekter Bin¨ arbaum: Alle internen Knoten haben genau 2 Kinder und alle Bl¨ atter sind auf der gleichen Ebene

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 28. M¨arz 2019 9 / 19

B4. Intermezzo - B¨aume Definitionen und Eigenschaften

Quiz

I Welche der folgenden B¨ aume sind voll, vollst¨ andig oder perfekt?

I Wie ist es mit dem leeren Baum?

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 28. M¨arz 2019 10 / 19

B4. Intermezzo - B¨aume Definitionen und Eigenschaften

H¨ ohe eines perfekten Bin¨ arbaums

Theorem

Die H¨ ohe eines perfekten Bin¨ arbaums der Gr¨ osse N (also mit N Knoten) ist log 2 (N + 1) − 1.

Beweis.

I Die Anzahl Knoten N eines perfekten Baumes der H¨ ohe h

sind N = 2 0 + 2 1 + . . . , +2 h = 2 h+1 − 1

I Aufl¨ osen nach h ergibt

log 2 (N + 1) = h + 1 ⇔ h = log 2 (N + 1) − 1

B4. Intermezzo - B¨aume Definitionen und Eigenschaften

H¨ ohe eines vollst¨ andigen Bin¨ arbaums

Theorem

Die H¨ ohe eines vollst¨ andigen Bin¨ arbaums der Gr¨ osse N is blog 2 (N)c

I Es stimmt f¨ ur H¨ ohe 0 (F¨ ur N = 1 ist log 2 (1) = 0)

I Die H¨ ohe nimmt nur um 1 zu, wenn N so vergr¨ ossert wird, dass es eine Zweierpotenz wird.

I D.h ein Knoten ist alleine auf der letzten Ebene.

(4)

B4. Intermezzo - B¨aume Traversierung

B4.2 Traversierung

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 28. M¨arz 2019 13 / 19

B4. Intermezzo - B¨aume Traversierung

Traversierung

Breitenansatz (breadth-first-search). Eine Ebene nach dem anderen.

Tiefenansatz (depth-first-search). Zuerst in die Tiefe, dann links nach rechts.

Quelle:http://www.cse.unsw.edu.au/ billw/Justsearch.html

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 28. M¨arz 2019 14 / 19

B4. Intermezzo - B¨aume Traversierung

Depth-first-search Traversierung

Wir unterscheiden drei Hauptarten der DFS Traversierung:

Preorder Aktueller Knoten zuerst, danach weiter traversieren Inorder Aktueller Knoten zwischen Traversierung von

Unterb¨ aumen

Postorder Aktueller Knoten nach Traversierung von Unterb¨ aumen

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 28. M¨arz 2019 15 / 19

B4. Intermezzo - B¨aume Datenstruktur

B4.3 Datenstruktur

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 28. M¨arz 2019 16 / 19

(5)

B4. Intermezzo - B¨aume Datenstruktur

Datenstruktur f¨ ur Bin¨ arbaum

c l a s s N o d e [ I t e m ]:

i t e m : I t e m l e f t : N o d e [ I t e m ] r i g h t : N o d e [ I t e m ]

# K o n s t r u k t o r

N o d e T r e e ( i t e m : Item , l e f t : N o d e [ I t e m ] , r i g h t : N o d e [ I t e m ])

Vergleiche mit verketteter Liste:

c l a s s N o d e [ I t e m ]:

i t e m : I t e m n e x t : N o d e

N o d e ( h e a d : Item , n e x t : N o d e [ I t e m ]) # K o n s t r u k t o r

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 28. M¨arz 2019 17 / 19

B4. Intermezzo - B¨aume Datenstruktur

Rekursive Interpretation

c l a s s B i n a r y T r e e [ I t e m ]:

i t e m I t e m

l e f t : B i n a r y T r e e [ I t e m ] r i g h t : B i n a r y T r e e [ I t e m ] B i n a r y T r e e ( i t e m : Item ,

l e f t : B i n a r y T r e e [ I t e m ] , r i g h t : B i n a r y T r e e [ I t e m ] )

I Nichts Neues: Nur neue Interpretation der Knoten (als Baum) I N¨ utzlich in Implementation

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 28. M¨arz 2019 18 / 19

B4. Intermezzo - B¨aume Datenstruktur

Implementation

Referenzen

ÄHNLICHE DOKUMENTE

oder besteht aus einem Knoten (genannt Wurzel) sowie maximal 2 Bin¨ arb¨ aumen (den Unterb¨ aumen von T ). Bin¨ arb¨ aume haben jede Menge Anwendungen Unser

Die Operationen Suchen und Einf¨ ugen in einen 2-3 Baum mit N Schl¨ usseln besuchen im schlechtesten Fall log 2 (N) Knoten. R¨ oger (Universit¨ at Basel) Algorithmen und

G ist stark zusammenh¨ angend, wenn von jedem Knoten zu jedem anderen Knoten ein gerichteter Pfad existiert. Eine starke Zusammenhangskomponente von G ist ein maximal grosser

Anf¨ anglich liegt jeder Knoten (alleine) in seiner eigenen Zusammenhangskomponente (insgesamt n St¨ uck).. Aktualisiere das Array bei jedem Aufruf

I In der Praxis ist Union-Find meist schneller, da der Graph f¨ ur viele Zwecke nicht vollst¨ andig aufgebaut werden muss. I Ist der Graph schon aufgebaut, kann

Gibt es mehrere Kanten, die einen noch nicht enthaltenen Knoten mit dem Baum verbinden, k¨ onnen nur die mit minimalem Gewicht gew¨ ahlt werden. Es reicht, jeweils nur eine solche

C4.1 Minimale Spannb¨ aume C4.2 Generischer Algorithmus C4.3 Graphenrepr¨ asentation C4.4 Kruskals Algorithmus C4.5 Prims Algorithmus... Minimale Spannb¨ aume Minimale

I Liegt ein Knoten eines solchen Zyklus auf einem Pfad von s nach v, k¨ onnen wir Pfade finden, deren Gewicht niedriger als jeder gegebene Wert ist. → kein korrekt