• 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!
19
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Algorithmen und Datenstrukturen

B4. B¨ aume

Marcel L¨ uthi and Gabriele R¨ oger

Universit¨ at Basel

(2)

Algorithmen und Datenstrukturen

— B4. B¨ aume

B4.1 Definitionen und Eigenschaften B4.2 Traversierung

B4.3 Datenstruktur

(3)

B4.1 Definitionen und Eigenschaften

(4)

Was ist ein Baum

I Struktur um Daten hierarchisch anzuordnen.

Abbildung:

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

(5)

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.

(6)

Beispiele

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

(7)

Terminologie

(8)

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 Bin¨ arb¨ aumen (den Unterb¨ aumen von T ).

I Bin¨ arb¨ aume haben jede

Menge Anwendungen

I Unser aktueller Fokus

(9)

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

(10)

Quiz

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

I Wie ist es mit dem leeren Baum?

(11)

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

(12)

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.

(13)

B4.2 Traversierung

(14)

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

(15)

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

(16)

B4.3 Datenstruktur

(17)

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

(18)

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

(19)

Implementation

IPython Notebooks: Trees.ipynb

Referenzen

ÄHNLICHE DOKUMENTE

In der Analyse von Mergesort werden wir eine Logarithmusfunktion verwendet. Dies ist bei der Analyse von Laufzeiten oft

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

Fall 1: k < Schl¨ ussel in Knoten Gehe nach links Fall 2: k > Schl¨ ussel in Knoten. Gehe nach rechts Fall 3: k = Schl¨ ussel

Datenstruktur Verkettete Liste von Schl¨ ussel/Werte-Paaren Suchen Elemente durchlaufen bis gefunden oder Listenende Einf¨ ugen Element in Liste.. Wert

Elemente werden in Array gespeichert, wobei Position durch Schl¨ ussel bestimmt ist.. Wichtigstes Werkzeug: Hashfunktion Berechnet Index aus

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 ∼

Bestimmte Grundbausteine ben¨ otigt man immer wieder bei Programmierprojekten, z.B. Sortierverfahren

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