B Graphen und B¨aume B.1 Graphen

Werbung
374
Algorithmen und Datenstrukturen
B
Graphen und Bäume
B.1 Graphen
Ein gerichteter Graph (auch Digraph) G ist ein Paar (V, E), wobei V eine
endliche Menge und E eine Relation auf V ist, d.h. E ⊂ V × V .
V heißt Menge der Knoten (auch Ecken, engl. vertices) von G,
E heißt Menge der Kanten (engl. edges) von G.
Gerichteter Graph G1 = (V, E1 ) mit
11
22
33
V = {1, 2, 3, 4, 5, 6}
E1 = {(1, 2), (2, 2), (2, 4), (2, 5),
(4, 1), (4, 5), (5, 4), (6, 3)}
44
B Graphen und Bäume
55
66
TU Bergakademie Freiberg, WS 2004/05
375
Algorithmen und Datenstrukturen
In einem ungerichteten Graphen G = (V, E) besteht die Kantenmenge aus
ungeordneten Paaren, d.h. (u, v) und (v, u) werden identifiziert.
Ferner erlauben wir in ungerichteten Graphen keine Schleifen, d.h. hier gilt
für (u, v) ∈ E auch u 6= v.
11
22
33
Ungerichteter Graph G2 = (V, E2 ) mit
V = {1, 2, 3, 4, 5, 6}
E2 = {(1, 2), (1, 5), (2, 5), (3, 6)}
44
B.1 Graphen
55
66
Knoten 4 ist isoliert.
TU Bergakademie Freiberg, WS 2004/05
376
Algorithmen und Datenstrukturen
Ist (u, v) Kante eines gerichteten Graphen, so sagt man (u, v) ist inzident
von Knoten u und inzident nach Knoten v. (Im Graphen G1 sind die
Kanten (2, 2), (2, 4) und (2, 5) inzident von Knoten 2.)
Ist (u, v) eine Kante eines ungerichteten Graphen, so sagt man (u, v) sei
inzident mit Knoten u und v. (Im Graphen G2 sind Kanten (1, 2) und (2, 5)
inzident mit Knoten 2.)
Ist (u, v) Kante eines gerichteten Graphen, so sagt man, Knoten v sei
adjazent zu Knoten u, geschrieben u → v. In ungerichteten Graphen ist
Adjazenz eine symmetrische Relation. (In G1 und G2 ist 2 adjazent zu 1.
Aber 1 ist nicht adjazent zu 2 in G1 .)
B.1 Graphen
TU Bergakademie Freiberg, WS 2004/05
377
Algorithmen und Datenstrukturen
Der Grad eines Knoten in einem ungerichteten Graphen ist die Anzahl der
mit diesem Knoten inzidenten Kanten. (Knoten 2 in G2 besitzt den Grad 2.)
Ein Knoten mit Grad 0 heißt isoliert. (Knoten 4 in G2 )
In einem gerichteten Graphen bezeichnet der Ausgangsgrad eines Knoten
die Anzahl von dort ausgehenden Kanten, der Eingangsgrad die Anzahl
der dort hineinlaufenden Kanten. Der Grad eines Knoten in einem
gerichteten Graphen ist die Summe von Ein- und Ausgangsgrad. (Knoten
2 in G1 besitzt Eingangsgrad 2, Ausgangsgrad 3, somit Grad 5.)
B.1 Graphen
TU Bergakademie Freiberg, WS 2004/05
378
Algorithmen und Datenstrukturen
Ein Weg der Länge k von Knoten u nach Knoten u0 in einem Graphen
G = (E, V ) bezeichnet eine Folge hv0 , v1 , . . . , vk i mit u = v0 , u0 = vk sowie
(vj−1 , vj ) ∈ E für alle j = 1, . . . , k.
Die Länge des Weges bezeichnet die Anzahl darin enthaltenen Kanten.
Der Weg enthält die Knoten v0 , . . . , vk und die Kanten
(v0 , v1 ), . . . , (vk−1 , vk ).
Es existiert stets ein Weg der Länge Null von u nach u.
Existiert ein Weg p von Knoten u nach Knoten u0 , so sagt man, u0 sei von
p
u aus erreichbar, in Zeichen u → u0 .
Ein Weg heißt einfach, wenn alle darin enthaltenen Knoten verschieden
sind. (In G1 ist h1, 2, 5, 4i ein einfacher Weg der Länge 3. Der Weg
h2, 5, 4, 5i ist nicht einfach.)
B.1 Graphen
TU Bergakademie Freiberg, WS 2004/05
379
Algorithmen und Datenstrukturen
Ein Teilweg eines Weges p = hv0 , v1 , . . . , vk i ist eine zusammenhängende
Teilfolge seiner Knoten, d.h. für 0 ≤ i ≤ j ≤ k ist hvi , vi+1 , . . . , vj i ein
Teilweg von p.
In einem gerichteten Graphen bildet ein Weg p = hv0 , v1 , . . . , vk i der Länge
k ≥ 1 einen Zykel, falls v0 = vk .
Ein Zykel heißt einfach falls v1 , . . . , vk paarweise verschieden sind. Eine
Schleife ist ein Zykel der Länge Eins.
Zwei Wege hv0 , v1 , . . . , vk−1 , v0 i und hv00 , v10 , . . . , vk−1 , v00 i stellen denselben
Zykel dar, falls es j ∈ Z gibt sodass vi0 = v(i+j) mod k für i = 0, 1, . . . , k − 1.
(In G2 bilden die Wege h1, 2, 4, 1i, h2, 4, 1, 2i sowie h4, 1, 2, 4i denselben
Zykel.)
Ein Graph ohne Zykeln heißt azyklisch.
B.1 Graphen
TU Bergakademie Freiberg, WS 2004/05
380
Algorithmen und Datenstrukturen
Ein ungerichteter Graph ist zusammenhängend, falls je zwei Knoten durch
einen Weg verbunden sind.
Die Zusammenhangskomponenten eines Graphen sind die
Äquivalenzklassen von Knoten bezüglich der Relation ist erreichbar
”
von“.(G2 besteht aus den drei Zusammenhangskomponenten
{1, 2, 5}, {3, 6}, {4}.)
Ein ungerichteter Graph ist genau dann zusammenhängend, wenn er aus
genau einer Zusammenhangskomponente besteht, d.h. wenn jeder
Knoten von jedem anderen Knoten erreichbar ist.
Ein gerichteter Graph heißt stark zusammenhängend, wenn jeder Knoten
von jedem anderen aus erreichbar ist.
Die starken Zusammenhangskomponenten eines gerichteten Graphen
sind die Äquivalenzklassen bezüglich der Relation sind gegenseitig
”
erreichbar“.
B.1 Graphen
TU Bergakademie Freiberg, WS 2004/05
381
Algorithmen und Datenstrukturen
B.2 Bäume
Einen azyklischen, ungerichteten Graph nennt man einen Wald; ist ein
solcher Graph noch zusammenhängend, nennt man ihn einen Baum.
Ein Wurzelbaum ist ein Baum mit einem ausgezeichneten Knoten, der
Wurzel des Baumes genannt wird.
Sei x ein Knoten in einem Wurzelbaum T mit Wurzel r. Jeder Knoten y auf
dem Weg von r nach x heißt Vorgänger von x. Ist y Vorgänger von x, so
nennt man x einen Nachfolger von y. (Jeder Knoten ist Vorgänger und
Nachfolger von sich selbst.) Von x verschiedene Vorgänger/Nachfolger
von x heißen echte Vorgänger bzw. echte Nachfolger.
Der an x wurzelnde Teilbaum ist der Baum aus Nachfolgern von x mit
Wurzel x.
B.2 Bäume
TU Bergakademie Freiberg, WS 2004/05
382
Algorithmen und Datenstrukturen
Wald
B.2 Bäume
Baum
weder noch
TU Bergakademie Freiberg, WS 2004/05
383
Algorithmen und Datenstrukturen
Ist (y, x) die letzte Kante auf dem Weg von der Wurzel nach x, so nennt
man y den Vater von x, und x den Sohn von y.
Die Wurzel ist der einzige Knoten in einem Wurzelbaum ohne Vater.
Zwei Knoten mit demselben Vater heißen Geschwister.
Ein Knoten ohne Sohn heißt Blatt.
Die Weglänge von der Wurzel zum Knoten x heißt dessen Tiefe.
Die Höhe eines Knotens x in einem Baum ist die Anzahl Kanten im
längsten einfachen absteigenden Weg von x zu einem Blatt.
Die Höhe eines Baumes ist die seiner Wurzel.
Ein Ordnungsbaum ist ein Wurzelbaum, bei dem die Söhne jedes Knotens
geordnet sind.
B.2 Bäume
TU Bergakademie Freiberg, WS 2004/05
384
Algorithmen und Datenstrukturen
7
3
Höhe = 4
8
6
Tiefe = 0
10
12
4
11
5
9
Tiefe = 1
2
Tiefe = 2
Tiefe = 3
Tiefe = 4
Beispiel eines Ordnungsbaumes
B.2 Bäume
TU Bergakademie Freiberg, WS 2004/05
385
Algorithmen und Datenstrukturen
Ein Binärbaum ist eine auf einer endlichen Knotenzahl definierte Struktur,
welche
• entweder keine Knoten enthält, oder
• aus drei disjunkten Knotenmengen besteht: einem Wurzelknoten,
einem linker Teilbaum genannten Binärbaum und einem rechter
Teilbaum genannter Binärbaum.
3
3
4
1
6
5
7
2
7
2
4
1
5
6
Beispiel zweier (verschiedener) Binärbäume
B.2 Bäume
TU Bergakademie Freiberg, WS 2004/05
Herunterladen