1 Graphentheorie
WirwerdenGraphenundgraphentheoretischeKonzeptealsModellierungvonthe-
oretisch undpraktisch relevantenFragestellungen (speziell algorithmischen)ken-
nenlernen.
Im Mittelpunkt steht die Frage der eÆzienten algorithmischen Losbarkeit ver-
schiedenerProbleme unter VerwendunggeeigneterDatenstrukturen.
1.1 Grundlegende Begrie
1.1.1 Denition und Darstellung von Graphen
EinGraphbeschreibtBeziehungen(einebinareRelation)zwischendenElementen
einerMengevon Objekten. Die Objektewerdenals KnotendesGraphenbezeich-
net;bestehtzwischenzweiKnoteneineBeziehung, sosagen wir,dasseszwischen
ihneneine Kante gibt.
Denition Ein endlicher ungerichteter Graph G ist ein Paar (V;E) bestehend
auseinerendlichenKnotenmengeV undeinerKantenmengeEvonKnotenpaaren
e=fu;vg, mitu;v2V.
ImGegensatzdazuistendlichergerichteterGraphGisteinPaar(V;E)bestehend
aus einer endlichen Knotenmenge V und einer Kantenmenge E von geordneten
Knotenpaarene=(u;v),mitu;v2V.
Man beachte, dass fur eine ungerichtete Kante gilt fu;vg = fv;ug, wahrend im
gerichteten Fall(u;v)6=(v;u).
Eine Kantevon einem Knoten zu sich selbst wird als Schleife (loop) bezeichnet.
Meistens werden wir schleifenloseGraphen betrachten und zusatzlich auch auss-
chlieen, dass es zwischen einem Knotenpaar mehrere Kanten gibt (dann waren
die Kanten durch eine Multimenge zu beschreiben). Solche Graphen ohne loops
undMehrfachkantenheienschlicht (simple).
Wiewerden Graphendargestellt?
1. Graphische Darstellung: Die Knoten werden als Punkte (meistens in der
Ebene) gezeichnet, die Kanten als ungerichtete bzw. gerichtete Strecken,
EsgibtvielfaltigeandereDarstellungsformenmitdemZiel,Graphen\schon"
zu zeichnen; diesist Gegenstandeines aktuellenForschungsgebietes der In-
formatik: dem Graph Drawing.
2. Adjazenzliste: EinKnoten v ist adjazent (benachbart) zu einem Knoten u,
wenneseine Kante von u nach v gibt.
Wir beschreiben denGraphen, in dem wir fur jeden Knoten alle seine ad-
jazentenKnotenineinerListe (alsDatenstruktur)zusammenfassen.
3. Adjazenzmatrix: WirnummerierendieKnotenausV mit1bisnundbilden
einenn{Matrix A. Der Eintrag A
i;j
ist 1 wenneseine Kantevon inach
j gibtund0 sonst.
Manbeachte,dassungerichteteGraphenimmereinesymmetrischeAdjazenz-
matrixhaben.
Fur die Behandlung algorithmischer Probleme sind in den allermeisten Fallen
Adjazenzlisten die Datenstruktur der Wahl, weil sie die wahre Groe (d.h., den
Speicherbedarf) eines Graphen (Anzahl der Kanten + Knoten) widerspiegeln,
wahrendAdjazenzmatrizen perDenition jVj 2
Eintrage haben.
1.1.2 Beispiele fur graphentheoretische Aufgabenstellungen
WirwollenbeispielhafteinigegraphentheoretischeundgraphenalgorithmischeAuf-
gabenskizzieren,diedieEntwicklungderGraphentheoriestarkbeeinussthaben.
1. Das4-Farben-Problem: ManstellesichdieWeltmiteinerbeliebigenpolitis-
chen Landkarte vor. Wir denieren einen Graphen,indem wir jedem Land
einen Knoten zuordnenundzwei Knotenmit einerKante verbinden,wenn
sie einen gemeinsamen Grenzabschnitt haben. Wie viele Farben braucht
man, umdie Lander so einzufarben, dass benachbarte Landerverschiedene
Farben haben. Appel und Haken (1978) haben (mit Computerhilfe, 1200
CPU-Stunden) \bewiesen", dass vier Farben immerausreichen! Einen Be-
weis vollig ohneComputergibt esbis heutenicht.
2. WelcheGraphentretenalsEcken-Kanten-GerustvonPolyedernauf? Polyeder
sindSchnittmengenvonHalbraumenimR 3
,mandenkeanWurfeloderPris-
men.
3. Eulersche Graphen: Man entscheide fur Graphen, ob man die Kanten so
durchlaufenkann,dass manjedeKantegenaueinmalbenutztundmanam
Schluss wieder am Startknoten steht. Der Ausgangspunkt fur diese Frage
wardasvon Euler1736 geloste sogenannteKonigsberger Bruckenproblem.
kann, dass man jeden Knoten genau einmal besucht bis man zum Aus-
gangsknotenzuruckkehrt. WahrendmanfurdasvorherigeEntscheidungspro-
blemeineeÆzientealgorithmischeLosungkennt,istdieseshieralgorithmisch
schwer(NP-vollstandig).
5. TravellingSalespersonProblem(TSP):OfthatmanesmitbewertetenGra-
phenzutun,dasheitKantenund/oderKnotenhabenzusatzlicheInforma-
tionenwieGewichte,Langen,Farben etc.
Ein Beispiel ist das TSP. Wir haben n Stadte gegeben als Punkte in der
Ebene. Fur jedesPaar(u;v) von Stadten kennt mandieKosten, umvon u
nachvzukommen. ManentwerfefurdenHandelsreisendeneinegeschlossene
Tour, die alle Stadte besucht und minimale Gesamtkosten hat. Auch dies
istein algorithmischschweres (NP{vollstandiges)Problem.
6. PlanareGraphen: WelcheGraphenlassensichsoinderEbenezeichnen,dass
sichKanten nicht schneiden, also sich hochstens inKnoten beruhren? Wie
kann man sie charakterisieren und algorithmisch schnell erkennen? Dazu
lieferteKuratowski1931einewunderschoneCharakterisierungplanarerGra-
phen durch verbotene Teilgraphen. Interessanterweise kann man planare
Graphen immer sokreuzungsfrei zeichnen, dass die Kanten sogar Strecken
sind(Fary,1948).
7. Netzwerke: Welchen Graphen sollte man der Architektur eines Rechner-
netzes zu Grunde legen, wenn die Kanten beschrankte Kapazitat haben,
aber trotzdem schneller Informationsaustausch gewahrleistet werden soll?
(Wurfelarchitekturen,Buttery{Netzwerke u.a.)
1.1.3 Denitionen und wichtige Graphen
Seiim folgendenG=(V;E) ein schlichterungerichteter Graph.
Denition: Der Grad eines Knoten v in einem ungerichteten Graphen ist die
Anzahldeg
G
(v) seinerNachbarn.
IneinemgerichtetenGraphenbezeichnetindeg
G
(v)dieAnzahlderinvankommenden
Kanten, derIngrad; wahrend outdeg
G
(v) die Anzahlder in v startenden Kanten
angibt.
EsgiltderfolgendeSachverhalt, auch alsHandschlag-Lemma bekannt.
Satz: Fureinen ungerichteten Graphen G=(V;E) haben wir
X
v2V deg
G
(v)=2jEj
DerSatz hateineinfachesaberuberraschendes Korollar.
Korollar: In jedem ungerichteten Graphen ist dieAnzahlder Knotenmitunge-
rademGradgerade.
Beweis: Die Summe aller Knotengrade is gerade. Die Teilsumme der geraden
Knotengradeistauchgerade,alsoistderRest,dieSummederungeradenKnoten-
grade,auchgerade. Dasheit dieserRestmusseinegerade AnzahlvonSumman-
denhaben.
Denition: Ein Graph G 0
= (V 0
;E 0
) ist Untergraph von G = (V;E), falls
V 0
V und E 0
E ist. G 0
heit induzierter Untergraph, falls auerdem gilt
E 0
=E\ffu;vgju;v 2V 0
g.
Denition: Zwei GraphenG=(V;E) undG 0
=(V 0
;E;) heienisomorph, wenn
eseine Bijektion:V !V 0
gibt mitderEigenschaft8u;v2V :fu;vg2E ()
f(u);(v)g 2E 0
.
schwer, fureingeschrankte Klassen,wie z.B.dieplanaren Graphenkennt man ef-
ziente Algorithmen.
Esgibt verschiedene Operationen, die aus Graphen neue Graphen erzeugen, wie
Vereinigung aberauch zum BeispieldieKomplementbildung.
Denition: G c
= (V;E c
) ist das Komplement von G = (V;E) falls fur jedes
u;v2V gilt,dass fu;vg2E genaudannwennfu;vg62E c
.
WirlernenimFolgendeneinigewichtige,weilzumindestensinderTheoriehaug
auftretende Graphenkennen.
1. DervollstandigeGraphK
n
,n1einenaturlicheZahl,bestehtausnKnoten
undallen moglichen n
2
Kanten.
JederGraphistnaturlichUntergrapheines vollstandigenGraphen.
2. Der vollstandige bipartite Graph K
n;m
, mit n;m 1, besteht aus n+m
Knoten undallen nm Kanten, die jeweils einen der n Knoten miteinem
derm Knotenverbinden.
Untergrapheneines vollstandigenbipartitenGraphen heienbipartit.
3. DerHyperw urfelQ
n
hatalsKnotenalle0-1-FolgenderLangen, zweiFolgen
werden durch eine Kante verbunden, wenn sie sich genau an einer Stelle
unterscheiden,also Hamming{Abstand 1haben.
DerQ
n hat2
n
Knotenundn2 n 1
Kanten,wassofort ausdemHandschlag{
Lemmafolgt.
4. DerWegP
n
,n0besteht ausn+1Knotenv
1
;:::;v
n+1
unddennKanten
fv
i
;v
i+1
g fur1in.
5. DerKreis C
n
,n3,entsteht ausdemWeg P
n 1
durch dasHinzufugender
Kantefv
1
;v
n g.
6. EinGraphheit k-regular,wennalleKnotendenGradk haben.
Alle Kreise sindalso 2{regular, der K
n
ist (n 1){regular und der Q
n ist
n{regular.
7. Baume, wie wir sie schon in Inf A zur Genuge kennen gelernt haben, sind
dieinderInformatik amhaugstenauftretendenGraphen.
Denition: Seien u und v Knoten ineinem ungerichteten Graphen G=(V;E).
Wirsagen,dassv von u erreichbar ist,wennesinG einenWegals Untergraphen
gibt,deru mitv verbindet.
Erreichbarkeit ist eine binare Relation uberder Knotenmenge V. Oensichtlich
ist dieseRelationeine
Aquivalenzrelation,dennsie ist:
reexiv: u ist mitsich selbst verbunden(durch denP
0 );
symmetrisch: derWeg, deru mitv verbindet,verbindet auch v mitu;
transitiv: seien u;v;w Knoten und u = u
1
;:::;u
k
= v die Knoten eines
Weges von u nach v sowie v = v
1
;:::;v
l
=w die Knoten eines Weges von
v nach w. Sei i der kleinste Index mit u
i 2 fu
1
;:::;u
k g\fv
1
;:::;v
l g.
Wir haben u
i
= v
j
furein 1 j l unddie Knoten u
1
;:::u
i
;v
j+1
;:::;v
l
deniereneinen Weg von u nach w.
Die Erreichbarkeitsrelationzerlegt also dieKnotenmenge V in
Aquivalenzklassen
V
1
;:::;V
k
. Die von diesen Mengen induzierten Untergraphen heienZusammen-
hangskomponenten desGraphenG.
Denition: Ein ungerichteter Graph heit zusammenhangend, wenn er genau
eineZusammenhangskomponente hat.
Beispiel:
Dieser Graph hat 3 Zusammenhangskomponenten
u und v in einergemeinsamen Zusammenhangskomponentevon G, so denieren
wir ihren Abstand d(u;v) als Lange (Anzahl der Kanten) eines kurzesten Weges
von unach v.
Gehorensie zu verschiedenenKomponenten,sosetzenwir d(u;v)=1.
Der Durchmesser D(G) des Graphen ist deniert als das Maximum uber alle
paarweisenAbstandezwischenKnoten.
Beispiel:
u v
w
x
d(u,w)=2 , d(u,v)=3 , D(G)=3
1.3 Charakterisierung bipartiter Graphen
EserweistsichinvielenFallenalsnutzlich,mehrereaquivalenteCharakterisierun-
gen ein und derselben Graphklasse zu haben. Im Falle der bipartiten Graphen,
diewiralsUntergraphen dervollstandigenbipartitenGrapheneingefuhrthatten,
liefertdiesder folgendeSatz.
Satz: EinGraphistgenaudannbipartit,wennalleinihmalsUntergraphenthal-
tenenKreisegerade Lange haben.
Beweis: Zunachstuberlegtmansich,dasswirdenGraphenalszusammenhangend
voraussetzenkonnen, ansonstenfuhrtman denfolgendenBeweisfurjedeZusam-
menhangskomponente.
SeiG=(V;E)bipartit,dasheit,V =A[BmitA\B =;undKantenverlaufen
nur zwischenKnoten aus A undKnoten aus B. Sei des weiteren C ein Kreis in
G. C benutzt abwechselndKnotenausA undB undhatsomit gerade Lange.
Wir zeigen die andere Richtung. Wir xieren einen beliebigen Knoten u 2 V.
A=fv2Vjd(u;v) gerade g;B =V nA
Zuzeigen,esgibtkeineKantenzwischenKnotenausA(bzw. ausB). Wirfuhren
einenindirektenBeweis.
Wir nehmen an, es gibt eine Kante fv;wg;v;w 2 B (fur A analog) und nden
einenWiderspruchzurAnnahme, dass alleKreise geradeLangehaben.
Wir betrachten kurzeste Wege von u zu v und zu w. Diese Wege haben gleiche
Lange! (wegenderKantezwischenv undw)Sei xderletzte gemeinsameKnoten
aufbeidenWegen. DannbildendiebeidenWegabschnittevonxnachvbzw. nach
wzusammenmitder Kantefv;wg einen KreisungeraderLange.
Man beachte, dass der Satz insbesondere gilt fur Graphen, die gar keine Kreise
besitzen, alsoBaume undWalder.
1.4 Baume und ihre Charakterisierung
Denition: EinzusammenhangenderungerichteterGraphisteinBaum, wenner
keinen Kreisenthalt.
Einungerichteter Graph,dessenZusammenhangskomponentenBaumesind,heit
Wald.
Beispiel:
Baumbeispiele
Denition: SeiG=(V;E) ungerichtetundzusammenhangendmitjVj=n. Ein
Untergraph T auf allen n Knoten, der ein Baum ist, heit aufspannender Baum
von G.
AnalogdeniertmanaufspannendeWalderfurnichtzusammenhangendeGraphen.
Beobachtung: JederzusammenhangendeGraphhateinenaufspannendenBaum,
dieseristabernureindeutig,wennderGraphselbsteinBaumist. DannistT der
Graphselbst.
(1)G=(V;E) istein Baum.
(2)JezweiKnotensinddurch genaueinen Weg verbunden.
(3)Gist zusammenhangendundesgilt: jEj=jVj 1.
Beweis:
(1))(2)und(2))(1)sindeinfache indirekteSchlusse.
Wirzeigen(1))(3):
ZunachsthatjederBaumKnotenvomGrad1,diesenenntmanBlatter. Dassieht
man wie folgt. Seien u
1
;u
2
;:::;u
i
die Knoten eines langsten Weges in G. Alle
Nachbarn von u
1
liegen auf diesem Weg, sonstware er nicht langster Weg. Nur
u
2
kann Nachbarsein, sonstgabe eseinen Kreis.
Wirentfernenu
1
unddieKantefu
1
;u
2
gausGunderhalteneinenzusammenhan-
genden Restgraphen G 0
. Dieser hat genaueinen Knoten undeine Kanteweniger
alsG. Wennwirdiesiterieren,bleibtzumSchlussgenaueinKnotenohneKanten
ubrig. AlsojEj=jVj 1.
(3))(1):
Sei T = (V;E 0
) aufspannender Baum von G, damit jVj jE 0
j = 1. Aber nach
Vorraussetzung gilt auch jVj jEj = 1. Allerdings ist E 0
E und die einzige
Moglichkeit hierfurist E =E 0
.
2. Grundlegende graphentheoretische Algorithmen
Neben der Untersuchung struktureller Eigenschaften von Graphklassen ist es fur
praktische Anwendungen eine zentrale Aufgabe, moglichst eÆziente algorithmi-
sche Losungen zu nden zur Bestimmung graphentheoretischer Parameter und
Eigenschaften.
WiebestimmtmandenAbstandzwischenKnoteneinesGraphen,wietestetman,
ob erzusammenhangend istundwelche Datenstruktureneignensichdafur?
2.1 Graphdurchmustern: Breitensuche und Tiefensuche
ImFolgendenwollenwirGraphensystematischvoneinemStartknotenausdurch-
mustern, dasheit,alleKnotenundKanten`anschauen'.
Sei G = (V;E) ein ungerichteter (oder gerichteter) Graph gegeben durch seine
Adjazenzlistendarstellung.
2.1.1 Breitensuche BFS
Die Breitensuche (breadthrst search) startet ins2V. Wirschauen unszuerst
alle Nachbarn von s an, danach die Nachbarn der Nachbarn usw. bis wir alle
KnotenundKantenerreicht haben.
Wirgeben denKnoten`Farben', diesesymbolisierenihrenaktuellen Zustand:
wei: Knotenwurdenochnicht gesehen; zuBeginn sindalleKnoten wei
grau: Knoten wurde schon gesehen, wir mussenaber noch uberpr ufen, ob
ernoch weie Nachbarnhat
schwarz: Knotenisterledigt,KnotenselbstundalleseineNachbarnwurden
gesehen.
Die noch zuuntersuchenden Knotenwerden ineinerWarteschlange Qverwaltet.
Knoten,derenFarbevon weinach grauwechselt, werdenansEndederSchlange
eingefugt. Die Schlange wird vom Kopf her abgearbeitet. Ist die Schlange leer,
sindallevon serreichbarenKnotenerledigt.
Mit BFS kann der Abstand d[u] = d(s;u) eines erreichbaren Knotens u von s
WegenvonszuallenerreichbarenKnotenaufgebaut. Dieseristdadurchbeschrie-
ben, dass man fur jeden Knoten einen Zeiger [u] auf den Vorgangerknoten auf
einem kurzesten Weg von snach u aufrechterhalt. Istdieser noch nicht bekannt
oder existiert gar nicht, so ist der Zeiger auf NIL gesetzt. Will man fur einen
Knotenu amSchlussnichtnurdenVorganger [u] sonderndenganzenkurzesten
Weg von s nach u, so iteriert man einfach die Vorgangerabfrage bis man bei s
landet.
Breitensuche BFS(G;s):
01 forjedeEcke u2V(G)nfsg
02 doFarbe[u] wei
03 d[u] 1
04 [u] NIL
05 Farbe[s] grau
06 d[s] 0
07 [s] NIL
08 Q fsg
09 whileQ6=;
10 dou Kopf[Q]
11 for jedenNachbarnv2 Adj[u]
12 do ifFarbe[v]=wei
13 then Farbe[v] grau
14 d[v] d[u]+1
15 [v] u
16 Setzev ansEndevon Q
17 Entferne Kopf ausQ
18 Farbe[u] =schwarz
DieKomplexitatdesBFS{AlgorithmusistoensichtlichO(jVj+jEj). Manbeachte,
dass der konstruierte Baum kurzester Wege von der Reihenfolge der Knoten in
den Adjazenzlisten abhangt, der Abstand der Knoten naturlich nicht. Fur ein
und denselben Graphen kann es sogar in Abhangigkeit von diesen Reihenfolgen
mehrerenichtisomorpheKurzeste{Wege{Baume geben,siehe2.
Ubungszettel.
2.1.2 Tiefensuche DFS
DieIdeederTiefensuche(depthrstsearch)isteinfach. HateinKnoten,denman
besucht, mehrere unentdeckte Nachbarn, so geht man zum ersten Nachbarn und
von dortindie`Tiefe' zu einemnoch unentdecktenNachbarn desNachbarn, falls
esihngibt. Dasmachtmanrekursiv,bismannichtmehrindieTiefegehenkann.
Danngeht mansolangezuruck,biswiedereineKanteindieTiefegeht,bzw. alles
Erreichbarebesucht wurde.
DieFarben habenwiederdieselbeBedeutungwiebeimBFS,ebensodie{Zeiger,
die die entstehende Baumstruktur implizit speichern. Der DFS berechnet nicht
dieAbstandevom Startknoten.
Man kann aber jedem Knoten ein Zeitintervall zuordnen, indem er `aktiv' ist,
was fur verschiedene Anwendungen interessant ist. Dazu lat man eine globale
Uhrmitlaufen,undmerkt sichfurjedenKnotenu denZeitpunktd[u], bei demu
entdecktwirdunddenZeitpunktf[u],beidemu erledigtist, daderAlgorithmus
alles inder `Tiefe' unter u gesehen hat. Daher gilt fur beliebige zwei Knoten im
Graphen,dassentwedereinesderZeitintervallevollimanderenenthaltenist,oder
beide disjunktsind.
Die geeignete Datenstruktur, um DFS zu implementieren, ist ein stack (Keller-
speicher).
Ist der Graph in Adjazenzlistenform gegeben, so lauft DFS ebenfalls in Zeit
O(jVj+jEj).
WiebeimBFS hangen dieentstehenden DFS{Baumevonder Reihenfolgeinden
Adjazenzlistenab.
DFS(G)
01 forjedeEcke u2 V(G)
02 doFarbe[u] wei
03 [u] NIL
04 Zeit 0
05 forjedeEcke u2V(G)
06 do if Farbe[u] =wei
07 DFS-visit(u)
01 Farbe[u] grau
02 d[u] Zeit Zeit+1
03 forjedeEcke v2Adj[u]
04 do if Farbe[v]= wei
05 then[v]=u
06 DFS-visit(v)
07 Farbe[u] =schwarz
08 f[u] Zeit Zeit+1
DerStackisteine Datenstruktur,diedasLIFO{Prinzip(last{in{rst{out um-
setzt. Das heit, die zu speichernden Daten (hier die grau werdenden Knoten)
sindlinear angeordnet und man kann ein neuen Eintrag nur als \oberstes" Ele-
ment indenStackeinfugen(miteinerpush{Operation) bzw. dasobersteElement
entfernen (mit einer pop{Operation, also beim DFS wenn der Knoten schwarz
wird). Als weitere Funktionalitat bietet ein Stack dieAbfrage nach seinerGroe
(size{Operation), die Boolesche Anfrage isEmpty und die Ausgabe des obersten
Eintrages(top{Operation,ohnedenEintragzu entfernen).
Wirwerden verschiedene Realisierungen einerStack{Datenstruktur noch kennen
lernenundinJava implementieren.
MankanndieKanteneinesGraphennachihrerRollebeieinerDFS{Durchmusterung
klassizieren. Wirunterscheiden:
Tree-Kanten(T{Kanten): von grauen nachweienKnoten
Back{Kanten (B{Kanten): von grau nach grau
Forward{Kanten (F{Kanten): von grau nach schwarz und zwar von Vor-
fahrenzu Nachkommen imDFS{Baum
Cross{Kanten(C{Kanten): allerestlichenGraphkanten
ImfolgendenBeispielsinddieZeitintervalleunddieKantenklassikationillus-
triert:
1 | 12 8 | 11 13 | 16
9 | 10
14 | 15 5 | 6
3 | 4 2 | 7
T
T
B F
C
T C
T C
C
C
T
C d(u) f(u)
DFS−Suche, Zeitintervalle der Knoten und Kantenklassifikation T
Gerichtete azyklische Graphen:
Gerichtete azyklische Graphen (dag's) sind gerichtete Graphen ohne gerichtete
Kreise. Diese spielenin derInformatik an verschiedenster Stelle eine Rolle, zum
Beispielbei Vererbungshierarchienin Java. Oderman stellesicheine Menge von
Jobsvordielinearzuordnensind. DabeigibtesEinschrankungenderart,dassein
Job avoreinem anderen Job b bearbeitet werden mu. Gesucht ist eine lineare
Ordnung(einetopologische Sortierung),die alledieseConstraintsberucksichtigt.
Denition: EinetopologischeSortierungeinesgerichtetenGraphenisteineNum-
merierung seiner Knoten derart, dass aus (u;v) 2 E folgt u v in der Num-
merierung.
OensichtlichmussdergerichteteGrapheindagsein,umeinetopologischeSortierung
zuzulassen. Das esdannaberimmergeht,uberlegt man sichwiefolgt.
Fakt: EingerichteterGraphisteindaggenaudann,wenneinDFS{Durchmustern
keine Back{Kanten produziert.
Basierend auf dieser Einsicht kann man topologisches Sortieren wie folgt real-
isieren: FuhreeinDFS furdendag durch;wennimmereinKnotenschwarz wird,
gibihnaus.
Behauptung: Dies ergibteintopologisch invers sortierte Knotenfolge.
Beweis: Zu zeigen, wenn (u;v) 2 E, dann ist f(v) f(u). Wir betrachten
denMoment, wenndie Kante (u;v) vom DFS untersucht wird. Zu diesem Zeit-
punkt ist u grau. v kann nicht grausein wegen obigen Fakts. Alsobestehennur
sichtlich f(v) kleinerals f(u), dennKnotendie unteru liegen,sind\eher" fertig
alsu.