Kürzeste Wege und Stacks

Werbung
Kürzeste Wege und Stacks
CoMa-Übung IX
TU Berlin
19.12.2012
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
1 / 21
Themen der Übung
Themen heute
Nachtrag: SimpleStack.toString()
Nachtrag: Beweis aus der Vorlesung
Algorithmus von Floyd-Warshall
Kürzeste Wege aus der Tree-Matrix berechnen
Adjazenzlisten und -matrizen
Tiefensuche
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
2 / 21
Nachträge
SimpleStack.toString()
1
2
3
4
5
6
7
8
9
10
11
/∗ ∗
∗ Returns a s t r i n g r e p r e s e n t a t i o n of t h i s stack , top
element f i r s t .
∗ @return a String r e p r e s e n t i n g t h i s stack .
∗/
public String toString () {
S t r i n g s t r = ”” ;
f o r ( L i s t N o d e <T> c u r r = t o p ; c u r r != n u l l ; c u r r = c u r r
. getNext () ) {
s t r = s t r + c u r r . getData ( ) . t o S t r i n g ( ) ;
}
return s t r ;
}
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
3 / 21
Nachträge
SimpleStack.toString()
1
2
3
4
5
6
7
8
9
10
11
/∗ ∗
∗ Returns a s t r i n g r e p r e s e n t a t i o n of t h i s stack , top
element f i r s t .
∗ @return a String r e p r e s e n t i n g t h i s stack .
∗/
public String toString () {
S t r i n g s t r = ”” ;
f o r ( L i s t N o d e <T> c u r r = t o p ; c u r r != n u l l ; c u r r = c u r r
. getNext () ) {
s t r = s t r + c u r r . getData ( ) . t o S t r i n g ( ) ;
}
return s t r ;
}
Beweis Stackbedingung
eKreide
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
3 / 21
Floyd-Warshall-Algorithmus
Geschichte
1962 unabhängig von Floyd und Warshall publiziert.
Robert W. Floyd.
Algorithm 97 (SHORTEST PATH).
Communications of the ACM, 5(6): 345, 1962.
Stephen Warshall.
A Theorem on Boolean Matrices.
Journal of the ACM, 9(1): 11-12, 1962.
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
4 / 21
Floyd-Warshall-Algorithmus
Geschichte
1962 unabhängig von Floyd und Warshall publiziert.
Robert W. Floyd. → Diese Version machen wir hier.
Algorithm 97 (SHORTEST PATH).
Communications of the ACM, 5(6): 345, 1962.
Stephen Warshall.
A Theorem on Boolean Matrices.
Journal of the ACM, 9(1): 11-12, 1962.
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
4 / 21
Floyd-Warshall-Algorithmus
Geschichte
1962 unabhängig von Floyd und Warshall publiziert.
Robert W. Floyd. → Diese Version machen wir hier.
Algorithm 97 (SHORTEST PATH).
Communications of the ACM, 5(6): 345, 1962.
Stephen Warshall.
A Theorem on Boolean Matrices.
Journal of the ACM, 9(1): 11-12, 1962.
Idee
Bellman-Ford: Berechne kürzeste Wege mit maximal 1, 2, 3, . . .
Kanten.
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
4 / 21
Floyd-Warshall-Algorithmus
Geschichte
1962 unabhängig von Floyd und Warshall publiziert.
Robert W. Floyd. → Diese Version machen wir hier.
Algorithm 97 (SHORTEST PATH).
Communications of the ACM, 5(6): 345, 1962.
Stephen Warshall.
A Theorem on Boolean Matrices.
Journal of the ACM, 9(1): 11-12, 1962.
Idee
Bellman-Ford: Berechne kürzeste Wege mit maximal 1, 2, 3, . . .
Kanten.
Floyd-Warshall: Berechne kürzeste Wege die nur Zwischenstopps in ∅,
{v1 }, {v1 , v2 }, . . . machen.
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
4 / 21
Floyd-Warshall-Algorithmus (2)
Formalisierung der Idee
dist(v , w , X ) := Länge eines kürzesten v -w -Weges, der nur Knoten
aus {v , w } ∪ X besucht
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
5 / 21
Floyd-Warshall-Algorithmus (2)
Formalisierung der Idee
dist(v , w , X ) := Länge eines kürzesten v -w -Weges, der nur Knoten
aus {v , w } ∪ X besucht
Beobachtungen
Wir sind an den dist(v , w , V ), v , w ∈ V interessiert.
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
5 / 21
Floyd-Warshall-Algorithmus (2)
Formalisierung der Idee
dist(v , w , X ) := Länge eines kürzesten v -w -Weges, der nur Knoten
aus {v , w } ∪ X besucht
Beobachtungen
Wir sind an den dist(v , w , V ), v , w ∈ V interessiert.
dist(v , w , ∅) ist leicht zu berechnen:
I
dist(v , w , ∅) := avw (für eine Entfernungsmatrix A = (a)ij ).
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
5 / 21
Floyd-Warshall-Algorithmus (2)
Formalisierung der Idee
dist(v , w , X ) := Länge eines kürzesten v -w -Weges, der nur Knoten
aus {v , w } ∪ X besucht
Beobachtungen
Wir sind an den dist(v , w , V ), v , w ∈ V interessiert.
dist(v , w , ∅) ist leicht zu berechnen:
I
dist(v , w , ∅) := avw (für eine Entfernungsmatrix A = (a)ij ).
dist(v , w , {x}) auch:
I
I
dist(v , w , {x}) = min{dist(v , w , ∅), dist(v , x, ∅) + dist(x, w , ∅)}.
Entweder der direkte Weg oder der Umweg über den einzig erlaubten
Zwischenstopp x ist besser.
x
v
CoMa-Übung IX (TU Berlin)
w
Kürzeste Wege und Stacks
19.12.2012
5 / 21
Floyd-Warshall-Algorithmus (3)
Berechnen der dist(v , w , X )
Initialisierung: dist(v , w , ∅) := avw .
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
6 / 21
Floyd-Warshall-Algorithmus (3)
Berechnen der dist(v , w , X )
Initialisierung: dist(v , w , ∅) := avw .
Zurückführung auf leichtere Fälle: dist(v , w , {x1 , . . . , xk }) = min{
I
I
dist(v , w , {x1 , . . . , xk−1 }),
dist(v , xk , {x1 , . . . , xk−1 }) + dist(xk , w , {x1 , . . . , xk−1 })
}.
xk
{x1 , . . . , xk−1 }
v
CoMa-Übung IX (TU Berlin)
{x1 , . . . , xk−1 }
{x1 , . . . , xk−1 }
Kürzeste Wege und Stacks
w
19.12.2012
6 / 21
Floyd-Warshall-Algorithmus (3)
Berechnen der dist(v , w , X )
Initialisierung: dist(v , w , ∅) := avw .
Zurückführung auf leichtere Fälle: dist(v , w , {x1 , . . . , xk }) = min{
I
I
dist(v , w , {x1 , . . . , xk−1 }),
dist(v , xk , {x1 , . . . , xk−1 }) + dist(xk , w , {x1 , . . . , xk−1 })
}.
xk
{x1 , . . . , xk−1 }
v
{x1 , . . . , xk−1 }
{x1 , . . . , xk−1 }
w
Entweder ist xk ein hilfreicher Zwischenstopp für einen kürzesten
v -w -Weg oder nicht.
Rückführung auf den Fall mit einem Zwischenstopp weniger.
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
6 / 21
Floyd-Warshall-Algorithmus (4)
Code
Für v = 0, . . . , n − 1:
I
Für w = 0, . . . , n − 1 : dist(v , w , ∅) := avw .
Für i = 1, . . . , n − 1:
I
Für v = 0, . . . , n − 1:
F
F
F
F
Für w = 0, . . . , n − 1: dist(v , w , {0, . . . , i}) := min{
dist(v , w , {0, . . . , i − 1}),
dist(v , i, {0, . . . , i − 1}) + dist(i, w , {0, . . . , i − 1})
}.
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
7 / 21
Floyd-Warshall-Algorithmus (4)
Code
Für v = 0, . . . , n − 1:
I
Für w = 0, . . . , n − 1 : dist(v , w , ∅) := avw .
Für i = 1, . . . , n − 1:
I
Für v = 0, . . . , n − 1:
F
F
F
F
Für w = 0, . . . , n − 1: dist(v , w , {0, . . . , i}) := min{
dist(v , w , {0, . . . , i − 1}),
dist(v , i, {0, . . . , i − 1}) + dist(i, w , {0, . . . , i − 1})
}.
Aufwand
3 verschaltete Schleifen von 0 bis n − 1.
Größenordnung von n3 Operationen nötig.
Schneller als die Bellman-Ford-Varianten aus der VL (n3 log n bzw.
n4 ) – es gibt aber auch schnellere Bellman-Ford-Varianten.
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
7 / 21
Tree-Matrizen
Idee:
Bellman-Ford und Floyd-Warshall bilden wiederholt Minima.
Speichere, wie die Minima gebildet wurden (→ Tree-Matrix).
Bellman-Ford:
I
tree[i][j] – speichert Vorgängerknoten von j auf dem i-j-Weg.
Für jeden Startknoten v lässt sich aus tree[v] ein kürzester
Wege-Baum berechnen.
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
8 / 21
Tree-Matrizen
Idee:
Bellman-Ford und Floyd-Warshall bilden wiederholt Minima.
Speichere, wie die Minima gebildet wurden (→ Tree-Matrix).
Bellman-Ford:
I
tree[i][j] – speichert Vorgängerknoten von j auf dem i-j-Weg.
Initialisierung: tree[i][j] = i falls (i, j) ∈ E , tree[i][j] = -1
sonst.
Für jeden Startknoten v lässt sich aus tree[v] ein kürzester
Wege-Baum berechnen.
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
8 / 21
Tree-Matrizen
Idee:
Bellman-Ford und Floyd-Warshall bilden wiederholt Minima.
Speichere, wie die Minima gebildet wurden (→ Tree-Matrix).
Bellman-Ford:
I
tree[i][j] – speichert Vorgängerknoten von j auf dem i-j-Weg.
Initialisierung: tree[i][j] = i falls (i, j) ∈ E , tree[i][j] = -1
sonst.
Updates in der innersten Schleife des Bellman-Ford-Algorithmus:
1
2
3
4
5
6
f o r ( i n t k = 0 ; k < n ; k++) {
i f (u [ i ] [ j ] > u [ i ] [ k ] + a [ k ] [ j ]) {
u[ i ][ j ] = u[ i ][ k] + a[k ][ j ];
tree [ i ][ j ] = k ;
}
}
Für jeden Startknoten v lässt sich aus tree[v] ein kürzester
Wege-Baum berechnen.
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
8 / 21
Tree-Matrizen (2)
Beispiel:
2
1
4
2
1
1
-1
1
-3
2
-3
3
CoMa-Übung IX (TU Berlin)
6
1
5
Kürzeste Wege und Stacks
19.12.2012
9 / 21
Tree-Matrizen (2)
Beispiel:
2
1
4
2
1
1
-1
1
-3
2
6
-3
3
1
5
Der kürzeste Wege Baum für den Startknoten 1.
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
9 / 21
Tree-Matrizen (2)
Beispiel:
1
2
1
5
4
2
1
-1 1
-1
1
-3
2
6 5
-3
3
2
1
5
3
Der kürzeste Wege Baum für den Startknoten 1.
Die Einträge von tree[1].
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
9 / 21
Tree-Matrizen (2)
Beispiel:
1
2
1
5
4
2
1
-1 1
-1
1
-3
2
6 5
-3
3
2
1
5
3
Der kürzeste Wege Baum für den Startknoten 1.
Die Einträge von tree[1].
Ein kürzester 1-6-Weg lässt sich dann aus schrittweise aus der Matrix
ablesen:
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
9 / 21
Tree-Matrizen (2)
Beispiel:
1
2
1
5
4
2
1
-1 1
-1
1
-3
2
6 5
-3
3
2
1
5
3
Der kürzeste Wege Baum für den Startknoten 1.
Die Einträge von tree[1].
Ein kürzester 1-6-Weg lässt sich dann aus schrittweise aus der Matrix
ablesen: 6
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
9 / 21
Tree-Matrizen (2)
Beispiel:
1
2
1
5
4
2
1
-1 1
-1
1
-3
2
6 5
-3
3
2
1
5
3
Der kürzeste Wege Baum für den Startknoten 1.
Die Einträge von tree[1].
Ein kürzester 1-6-Weg lässt sich dann aus schrittweise aus der Matrix
ablesen: 5 → 6
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
9 / 21
Tree-Matrizen (2)
Beispiel:
1
2
1
5
4
2
1
-1 1
-1
1
-3
2
6 5
-3
3
2
1
5
3
Der kürzeste Wege Baum für den Startknoten 1.
Die Einträge von tree[1].
Ein kürzester 1-6-Weg lässt sich dann aus schrittweise aus der Matrix
ablesen: 3 → 5 → 6
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
9 / 21
Tree-Matrizen (2)
Beispiel:
1
2
1
5
4
2
1
-1 1
-1
1
-3
2
6 5
-3
3
2
1
5
3
Der kürzeste Wege Baum für den Startknoten 1.
Die Einträge von tree[1].
Ein kürzester 1-6-Weg lässt sich dann aus schrittweise aus der Matrix
ablesen: 2 → 3 → 5 → 6
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
9 / 21
Tree-Matrizen (2)
Beispiel:
1
2
1
5
4
2
1
-1 1
-1
1
-3
2
6 5
-3
3
2
1
5
3
Der kürzeste Wege Baum für den Startknoten 1.
Die Einträge von tree[1].
Ein kürzester 1-6-Weg lässt sich dann aus schrittweise aus der Matrix
ablesen: 1 → 2 → 3 → 5 → 6
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
9 / 21
Datenstrukturen für Graphen
Graphen sind ein wichtiges Modellierungswerkzeug
Müssen irgendwie gespeichert werden
Bisher: Adjazenzmatrizen
Jetzt: Adjazenzlisten
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
10 / 21
Datenstrukturen für Graphen
Graphen sind ein wichtiges Modellierungswerkzeug
Müssen irgendwie gespeichert werden
Bisher: Adjazenzmatrizen
Jetzt: Adjazenzlisten
Adjazenzmatrizen: Beispiel
1
2
3
CoMa-Übung IX (TU Berlin)
4
5
Kürzeste Wege und Stacks
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
19.12.2012
10 / 21
Datenstrukturen für Graphen
Graphen sind ein wichtiges Modellierungswerkzeug
Müssen irgendwie gespeichert werden
Bisher: Adjazenzmatrizen
Jetzt: Adjazenzlisten
Adjazenzmatrizen: Beispiel
1
2
3
4
5
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
Blöd: nur n Knoten & n − 1 Kanten, aber n2 Platz für die Matrix
nötig
Adjazenzlisten zum Platzsparen
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
10 / 21
Adjazenzlisten
Idee
Jeder Knoten besitzt Liste seiner Nachbarn
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
11 / 21
Adjazenzlisten
Idee
Jeder Knoten besitzt Liste seiner Nachbarn
Beispiel
Knoten 1: {2}
1
2
3
4
5
Knoten 2: {3}
Knoten 3: {4}
Knoten 4: {5}
Knoten 5: {}
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
11 / 21
Adjazenzlisten
Idee
Jeder Knoten besitzt Liste seiner Nachbarn
Beispiel
Knoten 1: {2}
1
2
3
4
5
Knoten 2: {3}
Knoten 3: {4}
Knoten 4: {5}
Knoten 5: {}
Gut: n Knoten & n − 1 Kanten, in der Größenordnung von n Platz
nötig
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
11 / 21
Ein weiteres Beispiel
(Gerichteter) Petersen-Graph
Knoten 1: {2,6}
Knoten 2: {3,7}
1
Knoten 3: {4,8}
2
6
Knoten 4: {5,9}
7
10
Knoten 5: {1,10}
Knoten 6: {8,9}
8
3
5
9
Knoten 7: {9,10}
4
Knoten 8: {10}
Knoten 9: {}
Knoten 10: {}
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
12 / 21
Ein ungerichtetes Beispiel
Petersen-Graph
Knoten 1: {5,2,6}
Knoten 2: {1,3,7}
1
Knoten 3: {2,4,8}
2
6
Knoten 4: {3,5,9}
7
10
Knoten 5: {4,1,10}
Knoten 6: {1,8,9}
8
3
5
9
Knoten 7: {2,9,10}
4
Knoten 8: {3,6,10}
Knoten 9: {4,6,7}
Knoten 10: {5,7,8}
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
13 / 21
Vorteile und Nachteile von Adjazenzlisten
Vorteile
Braucht für dünne Graphen (um n Kanten) weniger Speicher als
Matrizen
Beschleunigt Algorithmen auf dünnen Graphen, die
I
I
alle Nachbarn eines Knoten oder
alle Knoten des Graphen betrachten
Nachteile
Test, ob eine Kante im Graph ist, dauert länger
Erfordert für dichte Graphen (um n2 Kanten) mehr Speicher als
Matrizen (Overhead durch Listen)
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
14 / 21
Tiefensuche
Algorithmus zur systematischen Suche in Graphen
Eingabe: Graph G = (V , E ), manchmal auch Startknoten s ∈ V
Ausgabe: Anwendungsabhängig
Anwendungen:
I
I
I
I
I
Zusammenhängende Komponenten eines Graphen bestimmen
Kreise finden
Wege zwischen zwei Knoten finden
Baum / Wald, der alle Knoten enthält
...
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
15 / 21
Tiefensuche mit vorgegebenem Startknoten
Ideen
Beginne bei Startknoten
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
16 / 21
Tiefensuche mit vorgegebenem Startknoten
Ideen
Beginne bei Startknoten
Benutze Adjazenzlisten, um neue Knoten zu finden
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
16 / 21
Tiefensuche mit vorgegebenem Startknoten
Ideen
Beginne bei Startknoten
Benutze Adjazenzlisten, um neue Knoten zu finden
Markiere Knoten:
I
I
I
Weiß für noch nicht besuchte Knoten
Orange für besuchte Knoten, von denen wir weitersuchen können
Rot für besuchte Knoten, von denen wir nicht weitersuchen können
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
16 / 21
Tiefensuche mit vorgegebenem Startknoten
Ideen
Beginne bei Startknoten
Benutze Adjazenzlisten, um neue Knoten zu finden
Markiere Knoten:
I
I
I
Weiß für noch nicht besuchte Knoten
Orange für besuchte Knoten, von denen wir weitersuchen können
Rot für besuchte Knoten, von denen wir nicht weitersuchen können
Benutze einen Stack
weitersuchen können
CoMa-Übung IX (TU Berlin)
, um Knoten zu merken, von denen wir
Kürzeste Wege und Stacks
19.12.2012
16 / 21
Tiefensuche mit vorgegebenem Startknoten
Ideen
Beginne bei Startknoten
Benutze Adjazenzlisten, um neue Knoten zu finden
Markiere Knoten:
I
I
I
Weiß für noch nicht besuchte Knoten
Orange für besuchte Knoten, von denen wir weitersuchen können
Rot für besuchte Knoten, von denen wir nicht weitersuchen können
Benutze einen Stack
weitersuchen können
, um Knoten zu merken, von denen wir
Nummeriere die Knoten in der Reihenfolge, in der sie gefunden
werden (nett für einige Anwendungen)
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
16 / 21
Tiefensuche mit vorgegebenem Startknoten
Basis-Algorithmus mit Startknoten s
Färbe alle Knoten weiß s
CoMa-Übung IX (TU Berlin)
a
b
...
Kürzeste Wege und Stacks
19.12.2012
17 / 21
Tiefensuche mit vorgegebenem Startknoten
Basis-Algorithmus mit Startknoten s
Färbe alle Knoten weiß s
a
b
...
Erzeuge einen leeren Stack
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
17 / 21
Tiefensuche mit vorgegebenem Startknoten
Basis-Algorithmus mit Startknoten s
Färbe alle Knoten weiß s
a
b
...
Erzeuge einen leeren Stack
Lege s auf den Stack s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
17 / 21
Tiefensuche mit vorgegebenem Startknoten
Basis-Algorithmus mit Startknoten s
Färbe alle Knoten weiß s
a
b
...
Erzeuge einen leeren Stack
Lege s auf den Stack s
Solange der Stack nicht leer ist: Betrachte den obersten Knoten v
v
des Stacks
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
17 / 21
Tiefensuche mit vorgegebenem Startknoten
Basis-Algorithmus mit Startknoten s
Färbe alle Knoten weiß s
a
b
...
Erzeuge einen leeren Stack
Lege s auf den Stack s
Solange der Stack nicht leer ist: Betrachte den obersten Knoten v
v
des Stacks
I
Falls v weiß ist: Färbe den Knoten orange v → v
F
F
v erhält die nächste freie Nummer
Weiße Nachbarn w werden auf den Stack gelegt (Adjazenzliste
durchlaufen)
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
17 / 21
Tiefensuche mit vorgegebenem Startknoten
Basis-Algorithmus mit Startknoten s
Färbe alle Knoten weiß s
a
b
...
Erzeuge einen leeren Stack
Lege s auf den Stack s
Solange der Stack nicht leer ist: Betrachte den obersten Knoten v
v
des Stacks
I
Falls v weiß ist: Färbe den Knoten orange v → v
F
F
I
v erhält die nächste freie Nummer
Weiße Nachbarn w werden auf den Stack gelegt (Adjazenzliste
durchlaufen)
Falls v orange ist: Färbe den Knoten rot v → v und entferne ihn
vom Stack
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
17 / 21
Tiefensuche mit vorgegebenem Startknoten
Basis-Algorithmus mit Startknoten s
Färbe alle Knoten weiß s
a
b
...
Erzeuge einen leeren Stack
Lege s auf den Stack s
Solange der Stack nicht leer ist: Betrachte den obersten Knoten v
v
des Stacks
I
Falls v weiß ist: Färbe den Knoten orange v → v
F
F
I
I
v erhält die nächste freie Nummer
Weiße Nachbarn w werden auf den Stack gelegt (Adjazenzliste
durchlaufen)
Falls v orange ist: Färbe den Knoten rot v → v und entferne ihn
vom Stack
Falls v rot ist: Nimm den Knoten vom Stack
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
17 / 21
Tiefensuche – Beispiel
g
d
a
e
i
s
b
k
f
j
c
CoMa-Übung IX (TU Berlin)
h
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
g
d
a
e
i
s
b
k
f
j
c
h
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
g
d
a
e
i
s
b
k
f
j
c
h
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
g
d
a
e
i
s
b
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
g
d
a
e
i
s
b
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
g
d
h
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
g
d
h
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
j
g
d
h
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
j
g
d
h
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
k
i
j
g
d
h
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
k
i
j
g
d
h
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
k
i
j
g
d
h
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
i
j
g
d
h
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
i
j
g
d
h
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
i
j
g
d
h
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
j
g
d
h
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
j
g
d
h
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
g
d
h
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
g
d
h
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
g
d
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
g
d
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
g
d
f
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
g
d
f
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
e
g
d
f
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
e
g
d
f
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
g
d
e
g
d
f
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
g
d
e
g
d
f
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
g
d
e
g
d
f
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
d
e
g
d
f
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
d
e
g
d
f
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
d
e
g
d
f
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
e
g
d
f
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
e
g
d
f
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
g
d
f
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
g
d
f
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
g
d
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
g
d
a
e
b
b
i
s
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
g
d
a
e
i
s
b
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
g
d
a
e
i
s
b
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
g
d
a
e
i
s
b
k
f
j
c
h
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
g
d
a
e
i
s
b
k
f
j
c
h
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
g
d
a
e
i
s
b
k
f
j
c
h
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
g
d
a
e
i
s
b
k
f
j
c
h
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
g
d
a
e
i
s
b
k
f
j
c
h
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
g
d
a
e
i
s
b
k
f
j
c
h
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Beispiel
g
d
a
e
i
s
b
k
f
j
c
CoMa-Übung IX (TU Berlin)
h
Kürzeste Wege und Stacks
19.12.2012
18 / 21
Tiefensuche – Laufzeit, Speicherplatz und
Kantenklassifizierung
Laufzeit: jede Kante wird genau einmal betrachtet
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
19 / 21
Tiefensuche – Laufzeit, Speicherplatz und
Kantenklassifizierung
Laufzeit: jede Kante wird genau einmal betrachtet
Speicherplatz: für jede Kante wird maximal einmal ein Knoten auf
den Stack gelegt
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
19 / 21
Tiefensuche – Laufzeit, Speicherplatz und
Kantenklassifizierung
Laufzeit: jede Kante wird genau einmal betrachtet
Speicherplatz: für jede Kante wird maximal einmal ein Knoten auf
den Stack gelegt
Laufzeit und Speicherplatz linear in der Anzahl der Kanten
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
19 / 21
Tiefensuche – Laufzeit, Speicherplatz und
Kantenklassifizierung
Laufzeit: jede Kante wird genau einmal betrachtet
Speicherplatz: für jede Kante wird maximal einmal ein Knoten auf
den Stack gelegt
Laufzeit und Speicherplatz linear in der Anzahl der Kanten
Farben und Knotennummern erlauben Klassifikation der Kanten →
für Anwendungen interessant
Anwendungsbeispiel: Gerichtete Zykel aus Digraph entfernen
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
19 / 21
Tiefensuche – Laufzeit, Speicherplatz und
Kantenklassifizierung
Laufzeit: jede Kante wird genau einmal betrachtet
Speicherplatz: für jede Kante wird maximal einmal ein Knoten auf
den Stack gelegt
Laufzeit und Speicherplatz linear in der Anzahl der Kanten
Farben und Knotennummern erlauben Klassifikation der Kanten →
für Anwendungen interessant
Anwendungsbeispiel: Gerichtete Zykel aus Digraph entfernen
Kanten betrachten, sobald beide Knoten gefärbt wurden
I
I
I
1 → 2 : okay
1 → : okay
2 → 1 : gerichteter Zykel
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
19 / 21
Tiefensuche – Beispiel mit Nummerierung
g
d
a
e
i
s
b
k
f
j
c
CoMa-Übung IX (TU Berlin)
h
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
g
d
a
e
i
s
b
k
f
j
c
h
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
g
d
a
e
i
1s
b
k
f
j
c
h
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
g
d
a
e
i
1s
b
k
f
j
c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
g
d
a
e
i
1s
b
k
f
j
2c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
g
d
h
a
e
b
b
i
1s
k
f
j
2c
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
g
d
h
a
e
b
b
i
1s
k
f
j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
j
g
d
h
a
e
b
b
i
1s
k
f
j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
j
g
d
h
a
e
b
b
i
1s
k
f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
k
i
j
g
d
h
a
e
b
b
i
1s
k
f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
k
i
j
g
d
h
a
e
b
b
i
1s
5k
f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
k
i
j
g
d
h
a
e
b
b
i
1s
5k
f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
i
j
g
d
h
a
e
b
b
i
1s
5k
f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
i
j
g
d
h
a
e
b
b
6i
1s
5k
f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
i
j
g
d
h
a
e
b
b
6i
1s
5k
f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
j
g
d
h
a
e
b
b
6i
1s
5k
f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
j
g
d
h
a
e
b
b
6i
1s
5k
f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
g
d
h
a
e
b
b
6i
1s
5k
f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
g
d
h
a
e
b
b
6i
1s
5k
f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
g
d
a
e
b
b
6i
1s
5k
f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
g
d
a
e
7
b
b
6i
1s
5k
f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
g
d
f
a
e
7
b
b
6i
1s
5k
f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
g
d
f
a
e
7
b
b
6i
1s
5k
8f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
e
g
d
f
a
e
7
b
b
6i
1s
5k
8f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
e
g
d
f
a
9e
7
b
b
6i
1s
5k
8f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
g
d
e
g
d
f
a
9e
7
b
b
6i
1s
5k
8f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
g
d
e
g
10
d
f
a
9e
7
b
b
6i
1s
5k
8f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
g
d
e
g
10
d
f
a
9e
7
b
b
6i
1s
5k
8f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
d
e
g
10
d
f
a
9e
7
b
b
6i
1s
5k
8f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
d
e
g
10
11
d
f
a
9e
7
b
b
6i
1s
5k
8f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
d
e
g
10
11
d
f
a
9e
7
b
b
6i
1s
5k
8f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
e
g
10
11
d
f
a
9e
7
b
b
6i
1s
5k
8f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
e
g
10
11
d
f
a
9e
7
b
b
6i
1s
5k
8f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
g
10
11
d
f
a
9e
7
b
b
6i
1s
5k
8f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
g
10
11
d
f
a
9e
7
b
b
6i
1s
5k
8f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
g
10
11
d
a
9e
7
b
b
6i
1s
5k
8f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
g
10
11
d
a
9e
7
b
b
6i
1s
5k
8f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
g
10
11
d
a
9e
6i
1s
7
b
5k
8f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
g
10
11
d
a
9e
6i
1s
7
b
5k
8f
4j
2c
3
h
c
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
g
10
11
d
a
9e
6i
1s
7
b
5k
8f
4j
2c
3
h
b
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
g
10
11
d
a
9e
6i
1s
7
b
5k
8f
4j
2c
3
h
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
g
10
11
d
a
12
9e
6i
1s
7
b
5k
8f
4j
2c
3
h
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
g
10
11
d
a
12
9e
6i
1s
7
b
5k
8f
4j
2c
3
h
a
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
g
10
11
d
a
12
9e
6i
1s
7
b
5k
8f
4j
2c
3
h
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
g
10
11
d
a
12
9e
6i
1s
7
b
5k
8f
4j
2c
3
h
s
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Tiefensuche – Beispiel mit Nummerierung
g
10
11
d
a
12
9e
6i
1s
7
b
5k
8f
4j
2c
CoMa-Übung IX (TU Berlin)
3
h
Kürzeste Wege und Stacks
19.12.2012
20 / 21
Frohe Weihnachten und einen guten Rutsch!
Euer CoMa-Team
CoMa-Übung IX (TU Berlin)
Kürzeste Wege und Stacks
19.12.2012
21 / 21
Herunterladen