Die Breitensuche verfolgt denselben Startpunkt wie DFS, arbeitet aber anders: Sie besucht Knoten
schichtweise. Zuerst kommt der Startknoten, dann alle Knoten mit Entfernung 1, danach alle Knoten
mit Entfernung 2 und so weiter.
Die zentrale Datenstruktur ist die Queue aus Q1.4. Der Startknoten wird eingefügt, vorne wird immer
der nächste Knoten entnommen, und unbesuchte Nachbarn werden hinten angefügt. visited
verhindert, dass ein Knoten mehrfach in die Queue gelangt.
Queue-Trace ab A
| Schritt |
entnommen |
Queue vorher |
neu markierte Nachbarn |
Queue nachher |
Distanz / Ebene |
| Start |
– |
[] |
A |
[A] |
A: 0 |
| 1 |
A |
[A] |
B, C |
[B, C] |
B, C: 1 |
| 2 |
B |
[B, C] |
D |
[C, D] |
D: 2 |
| 3 |
C |
[C, D] |
E |
[D, E] |
E: 2 |
| 4 |
D |
[D, E] |
F |
[E, F] |
F: 3 |
| 5 |
E |
[E, F] |
keine |
[F] |
keine neue Ebene |
| 6 |
F |
[F] |
keine |
[] |
Suche beendet |
Die Ebenen sind {A}, dann {B, C}, dann {D, E},
dann {F}. Genau diese Ebenenstruktur erklärt, warum BFS in ungewichteten Graphen
kürzeste Wege nach Kantenzahl findet.
Arbeitsauftrag
Führe BFS ab A aus und notiere nach jedem Entnehmen den Queue-Zustand. Prüfe, an welcher Stelle F zum ersten Mal markiert wird.
Vorlage direkt bearbeiten:
BFS im Struktogramm-Tool öffnen.