Agenda - Department of Informatics

Werbung
Helmut Schauer
Educational Engineering Lab
Department for Informatics
University of Zurich
Algorithmen und Datenstrukturen
FS 2008
BBäume
1
Helmut Schauer
Educational Engineering Lab
Department for Informatics
University of Zurich
Definition (1)
Jeder Knoten (mit Ausnahme der Wurzel) eines
BBaumes der Ordnung m enthält mindestens m und
höchstens 2m Schlüssel:
m≤s≤2m s...Anzahl der Schlüssel
Die Wurzel eines BBaumes der Ordnung m enthält
höchstens 2m Schlüssel:
0≤s≤2m
2
Helmut Schauer
Educational Engineering Lab
Department for Informatics
University of Zurich
Definition (2)
Ein BBaum ist sortiert wenn für jeden Knoten gilt:
k1
t0
k2
t1
ks
t2
ts
All xt0: x≤k1
All xti: 1≤i<s: ki≤x≤ki+1
All xts: ks≤x
3
Helmut Schauer
Educational Engineering Lab
Department for Informatics
University of Zurich
Eigenschaften
Die Pfadlänge h zu allen Blättern eines BBaumes ist
gleich gross.
h ≤ logm+1 n = O(log n)
Die Bedingung dass die Knoten mindestens zur Hälfte
gefüllt sind garantiert eine mindestens 50% Nutzung des
verwendeten Speichers.
Einfügen kann zu einem Overflow, Entfernen zu einem
Underflow eines Knotens führen.
4
Helmut Schauer
Educational Engineering Lab
Department for Informatics
University of Zurich
Overflow eines Knotens (Split)
vor dem Split:
k1 ... km km+1 km+2 ... k2m+1
nach dem Split:
k1 ... km
km+1
km+2 ... k2m+1
5
Helmut Schauer
Educational Engineering Lab
Department for Informatics
University of Zurich
Binäre BBäume (2,3-Bäume)
Ordnung m = 1  1 ≤ s ≤ 2
Jeder Knoten (ausser der Wurzel) hat entweder 2 oder 3
Nachfolger
a
A
b
B
a
C
A
B
6
Helmut Schauer
Educational Engineering Lab
Department for Informatics
University of Zurich
Abbildung auf Binäre Bäume

a
B
A
a
A
A
B

b
B
a
C
B
a
A
b
B
C
7
Helmut Schauer
Educational Engineering Lab
Department for Informatics
University of Zurich
Split (1)
a
A

a
b
b
B

A
B
C
C
8
Helmut Schauer
Educational Engineering Lab
Department for Informatics
University of Zurich
Split (2)
b
Aa
A


a
b
C
A
B
C
B
9
Helmut Schauer
Educational Engineering Lab
Department for Informatics
University of Zurich
a
A
Split (3)


b
b
B
Aa
c
C

D
A
c
B C
D
10
Helmut Schauer
Educational Engineering Lab
Department for Informatics
University of Zurich
b
Aa
A

c
C
B
Split (4)


b
D
Aa
A
c
B C
D
11
Helmut Schauer
Educational Engineering Lab
Department for Informatics
University of Zurich
a
A
c



b
D
b
B
Split (5)
C
Aa
A
c
B C
D
12
Herunterladen