forked from IF-LK-2020/breitensuche
findVertex() Breitensuche Implementiert
This commit is contained in:
@@ -44,7 +44,7 @@ public class Breitensuche {
|
||||
g.setAllVertexMarks(false); // Markierungen zurücksetzen
|
||||
Queue<Vertex> searchQueue = new Queue<>(); // Speicher für zu bearbeitende Knoten erstellen
|
||||
|
||||
// TODO: Implementiere die Breitensuche als iterativen Algorithmus:
|
||||
// Finished: Implementiere die Breitensuche als iterativen Algorithmus:
|
||||
// Reihe dazu die noch nicht markierten Nachbarknoten in die
|
||||
// searchQueue ein und arbeite die Knoten in ihr der Reihe nach
|
||||
// ab, bis die Queue leer ist, oder der gesuchte Knoten
|
||||
@@ -54,6 +54,29 @@ public class Breitensuche {
|
||||
// TODO: Wenn dein Algorithmus funnktioniert, kopiere die Methode und
|
||||
// Erstelle Varianten, bei denen die Reihenfolge der Nachbarknoten
|
||||
// modifiziert ist. Dazu
|
||||
|
||||
if(g.getVertex("Köln").getID().equals(pVertexID)){
|
||||
return true;
|
||||
} else {
|
||||
g.getVertex("Köln").setMark(true);
|
||||
searchQueue.enqueue(g.getVertex("Köln"));
|
||||
while(!searchQueue.isEmpty()){
|
||||
Vertex v = searchQueue.front();
|
||||
List<Vertex> ngbrs = g.getNeighbours(v);
|
||||
ngbrs.toFirst();
|
||||
while(ngbrs.hasAccess()){
|
||||
if(!ngbrs.getContent().isMarked()){
|
||||
if(ngbrs.getContent().getID().equals(pVertexID)){
|
||||
return true;
|
||||
}
|
||||
ngbrs.getContent().setMark(true);
|
||||
searchQueue.enqueue(ngbrs.getContent());
|
||||
}
|
||||
ngbrs.next();
|
||||
}
|
||||
searchQueue.dequeue();
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user