Ich soll diese Breitensuche abgegeben und bei der abgabe wird als Fehler angegeben: BFS.search() auf Graph ohne Pfeile fehlerhaft expected:<true> but was:<false>
Kann mir jmd sagen was bei mir da falsch ist?
Kann mir jmd sagen was bei mir da falsch ist?
Java:
public class BFS {
/**
* Diese Methode soll mittels Breitensuche pruefen, ob ein Weg vom
* Startknoten source zum Zielknoten target existiert.
*
* @param <search>
* Suche
*
* @param graph
* Wege
* @param source
* Startknoten
* @param target
* Zielknoten
* @return true, wenn Weg existiert
*/
public static boolean search(ISimpleGraph graph, int source, int target) {
if (source <= 0 || target <= 0 || source > graph.getNodeCount()
|| target > graph.getNodeCount())
return false;
if (source == target)
return true;
if (graph.getEdgeCount() == 0)
return false;
LinkedList<Integer> sucher = new LinkedList<Integer>();
LinkedList<Integer> tester = new LinkedList<Integer>();
sucher.add(source);
tester.add(source);
while (!sucher.isEmpty()) {
int c;
c = sucher.remove();
if (c == target)
return true;
if (graph.getSuccessors(c) != null) {
for (int i = 0; i < graph.getSuccessors(c).length; i++) {
if (!tester.contains(graph.getSuccessors(c))) {
sucher.add(graph.getSuccessors(c)[i]);
tester.add(graph.getSuccessors(c)[i]);
}
}
}
}
return false;
}
}