Breitensuche <-> Zyklensuche in einem undirected Graph

Neue Frage »

Auf diesen Beitrag antworten »
MrJohnny Breitensuche <-> Zyklensuche in einem undirected Graph

Halli Hallo! Ich zerbreche mir gerade den Kopf über einen Punkt den unser Prof in sein Skript geschrieben: Man kann mit der BFS auch auf Zyklen in einem undirected Graph Testen.
Erstmal der Algorithmus von ihm:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
vertex parent[1...p], node adl[1...p], int where[1...p], int nr

BreadthFirstSearch()
  vertex k
  for (k=1 to p) do
     where[k] = 0; parent[k] = 0
  nr = 1
  for (k = 1 to p) do
    if (where[k] = 0)
      then Visit(k); nr = nr +1

Visit(vertex k)
  node no
  ToQueue(k); where[k] = -1
  repeat
    k = FromQueue; where[k] = nr
    no = adl[k]
    while (no != null) do
      if (where[no.v] = 0)
        then ToQueue(no.v); where[no.v] = -1
        parent[no.v] = k
      no = no.next
  until QueueEmpty


Wie bekomm ich das nun hin auf einen Zyklus zu testen bzw. wo seh ich das in der Breitensuche? Ich mein die Breitensuche berechnet ja eigentlich den kürzesten Weg von einem Node zu einem anderen Node...
Normal wird das ja durch die Tiefensuche und der Bildung der starken Zusammenhangskomponente erledigt. Ich hoffe ihr könnt mir weiter helfen smile
Grüße MrJohnny
 
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »