next up previous contents
Next: Minimale Spannbäume Up: Traversierung von Graphen Previous: DFS-Algorithmus

DFS-Algorithmus


while $\exists$ unvisitet v do r:= pick(random) unvisited node; push r into queue; while queue $\neq \emptyset$ do v:= remove front element of queue; if not visited v then mark v visited; append all neigbour's of v to end of queue; BFS_Ops(v); fi od od

Beispiel für BFS:


\begin{picture}
(70,70)
 

\color {blue}
 

\thicklines 
 
 \put(35.3,65.3){\lin...
 ... \put(65,25){\line(0,1){20}} %6 

 \put(65,45){\line(-2,-1){20}} %7\end{picture}

Die markierten Kanten bilden einen Spannbaum:


\begin{picture}
(82,55)
 
\multiput(15,35)(1,0){35}{\circle*{0.01}}
\multiput(50...
 ...0,20){\circle*{2}}
\put(40,20){\circle*{2}}
\put(15,5){\circle*{2}}\end{picture}

Wir betrachten nun den Queuezustand: Im Zustand e) sind die Elemente 1 und 8 als visited markiert (siehe Zustände a) und c)). Deswegen werden sie aus der Queue entfernt, und so wird das Element 9 das vorderste Queueelement. Das gleiche passiert in den Zuständen g), h) und i). Im Zustand j) sind alle Elemente markiert, so daß sie eins nach dem anderen aus der Queue entfernt werden.
\includegraphics {eps/3_ws99_9.eps}


Abbas-Bardia Kabiri-Jarghouyeh
3/3/1999