• Keine Ergebnisse gefunden

Algorithmen und Datenstrukturen B4. B¨aume Marcel L¨uthi and Gabriele R¨oger

N/A
N/A
Protected

Academic year: 2022

Aktie "Algorithmen und Datenstrukturen B4. B¨aume Marcel L¨uthi and Gabriele R¨oger"

Copied!
22
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

B4. B¨aume

Marcel L¨uthi and Gabriele R¨oger

Universit¨at Basel

(2)

Definitionen und Eigenschaften

(3)

Was ist ein Baum

Struktur um Daten hierarchisch anzuordnen.

Abbildung:

http://www.ub.unibas.ch/bernoulli/index.php/Stammbaum

(4)

Was ist ein Baum

Rekursive Definition

Ein BaumT der Ordnungn ist der leere Baum,

oder besteht aus einem Knoten (der Wurzel) sowie maximaln B¨aumen (den Unterb¨aumen vonT).

Vergleiche mit Definition von Liste:

Eine ListeList die leere Liste

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

(5)

Was ist ein Baum

Rekursive Definition

Ein BaumT der Ordnungn ist der leere Baum,

oder besteht aus einem Knoten (der Wurzel) sowie maximaln B¨aumen (den Unterb¨aumen vonT).

Vergleiche mit Definition von Liste:

Eine ListeList die leere Liste

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

(6)

Beispiele

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

(7)

Beispiele

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

(8)

Terminologie

(9)

Wichtigster Spezialfall: Bin¨ arbaum

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

der leere Baum

oder besteht aus einem Knoten (genannt Wurzel) sowie maximal 2 Bin¨arb¨aumen (den Unterb¨aumen vonT).

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

(10)

Wichtigster Spezialfall: Bin¨ arbaum

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

der leere Baum

oder besteht aus einem Knoten (genannt Wurzel) sowie maximal 2 Bin¨arb¨aumen (den Unterb¨aumen vonT).

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

(11)

Terminologie (2)

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

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.

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

(12)

Quiz

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

Wie ist es mit dem leeren Baum?

(13)

H¨ ohe eines perfekten Bin¨ arbaums

Theorem

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

Beweis.

Die Anzahl Knoten N eines perfekten Baumes der H¨oheh

sind N= 20+ 21+. . . ,+2h= 2h+1−1

Aufl¨osen nach h ergibt

log2(N+ 1) =h+ 1⇔h= log2(N+ 1)−1

(14)

H¨ ohe eines vollst¨ andigen Bin¨ arbaums

Theorem

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

Es stimmt f¨ur H¨ohe 0 (F¨urN = 1 ist log2(1) = 0)

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

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

(15)

Traversierung

(16)

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

(17)

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

(18)

Datenstruktur

(19)

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

(20)

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

(21)

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 ] )

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

(22)

Implementation

IPython Notebooks: Trees.ipynb

Referenzen

ÄHNLICHE DOKUMENTE

Ein bin¨ arer Baum / Array ist Heap geordnet, wenn der Schl¨ ussel in jedem Knoten gr¨ osser gleich dem Schl¨ ussel seiner beiden Kindern (sofern vorhanden) ist.. Quelle:

In einer auf Verkettung basierenden Hashtabelle mit M Listen und N Schl¨ usseln ist die Anzahl der Vergleiche (Gleichheitstests) f¨ ur Einf¨ ugungen und erfolglose Suchen ∼

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

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

Dies kann sich auf die Ubernahme fremder Texte oder anderer Darstellungen ¨ [.

Baue Heap aus unsortierter Liste Solange Elemente im Heap sind. Entferne kleinstes Element (Wurzel) Schreibe Element in (neue) Liste Stelle Heapbedingung

I Baue Heap aus unsortierter Liste I Solange Elemente im Heap sind. I Entferne kleinstes Element (Wurzel) I Schreibe Element in (neue) Liste I Stelle Heapbedingung

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