diff --git a/Breitensuche.class b/Breitensuche.class index df80124..133a7dc 100644 Binary files a/Breitensuche.class and b/Breitensuche.class differ diff --git a/Breitensuche.java b/Breitensuche.java index 8a2d8f1..57c472d 100644 --- a/Breitensuche.java +++ b/Breitensuche.java @@ -109,7 +109,33 @@ public class Breitensuche { // Nutze dazu die Hilfsmethode getVertexFromListByID, um aus // Liste der Nachbarknoten denjenigen, der alphabetisch als // erstes kommt herauszusuchen. - + if(g.getVertex("Köln").getID().equals(pVertexID)){ + System.out.println("Köln gefunden"); + return true; + } else { + g.getVertex("Köln").setMark(true); + searchQueue.enqueue(g.getVertex("Köln")); + while(!searchQueue.isEmpty()){ + Vertex v = searchQueue.front(); + List cngbrs=copyList(g.getNeighbours(v)); + cngbrs.toFirst(); + while(cngbrs.hasAccess()){ + Vertex vs = getVertexFromListByID(cngbrs); + if(!vs.isMarked()){ + System.out.println(vs.getID()); + if(vs.getID().equals(pVertexID)){ + System.out.println(vs.getID() +" gefunden"); + return true; + } + vs.setMark(true); + searchQueue.enqueue(vs); + } + + } + searchQueue.dequeue(); + } + } + System.out.println(pVertexID +" Nicht gefunden"); return false; } diff --git a/BreitensucheTest.class b/BreitensucheTest.class index e365be3..d222d21 100644 Binary files a/BreitensucheTest.class and b/BreitensucheTest.class differ diff --git a/BreitensucheTest.ctxt b/BreitensucheTest.ctxt index 6493023..7129412 100644 --- a/BreitensucheTest.ctxt +++ b/BreitensucheTest.ctxt @@ -6,4 +6,6 @@ comment2.params= comment2.target=void\ testFindVertex() comment3.params= comment3.target=void\ testFindVertexByWeight() -numComments=4 +comment4.params= +comment4.target=void\ testFindVertexByID() +numComments=5 diff --git a/BreitensucheTest.java b/BreitensucheTest.java index 2c4c448..2d7b536 100644 --- a/BreitensucheTest.java +++ b/BreitensucheTest.java @@ -33,5 +33,17 @@ public class BreitensucheTest { assertFalse("Der Knoten Tokio ist nicht im Graphen vorhanden.", ts.findVertexByWeight("Tokio")); assertFalse("Der Knoten London ist nicht im Graphen vorhanden.", ts.findVertexByWeight("London")); } + + @Test + public void testFindVertexByID() { + Breitensuche ts = new Breitensuche(); + + assertTrue("Der Knoten Köln ist im Graphen vorhanden.", ts.findVertexByID("Köln")); + assertTrue("Der Knoten Bielefeld ist im Graphen vorhanden.", ts.findVertexByID("Bielefeld")); + assertTrue("Der Knoten Bochum ist im Graphen vorhanden.", ts.findVertexByID("Bochum")); + + assertFalse("Der Knoten Tokio ist nicht im Graphen vorhanden.", ts.findVertexByID("Tokio")); + assertFalse("Der Knoten London ist nicht im Graphen vorhanden.", ts.findVertexByID("London")); + } }