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