forked from IF-LK-2020/breitensuche
findVertexByID() implementiert
This commit is contained in:
Binary file not shown.
@@ -109,7 +109,33 @@ public class Breitensuche {
|
|||||||
// Nutze dazu die Hilfsmethode getVertexFromListByID, um aus
|
// Nutze dazu die Hilfsmethode getVertexFromListByID, um aus
|
||||||
// Liste der Nachbarknoten denjenigen, der alphabetisch als
|
// Liste der Nachbarknoten denjenigen, der alphabetisch als
|
||||||
// erstes kommt herauszusuchen.
|
// 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<Vertex> 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;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@@ -6,4 +6,6 @@ comment2.params=
|
|||||||
comment2.target=void\ testFindVertex()
|
comment2.target=void\ testFindVertex()
|
||||||
comment3.params=
|
comment3.params=
|
||||||
comment3.target=void\ testFindVertexByWeight()
|
comment3.target=void\ testFindVertexByWeight()
|
||||||
numComments=4
|
comment4.params=
|
||||||
|
comment4.target=void\ testFindVertexByID()
|
||||||
|
numComments=5
|
||||||
|
|||||||
@@ -33,5 +33,17 @@ public class BreitensucheTest {
|
|||||||
assertFalse("Der Knoten Tokio ist nicht im Graphen vorhanden.", ts.findVertexByWeight("Tokio"));
|
assertFalse("Der Knoten Tokio ist nicht im Graphen vorhanden.", ts.findVertexByWeight("Tokio"));
|
||||||
assertFalse("Der Knoten London ist nicht im Graphen vorhanden.", ts.findVertexByWeight("London"));
|
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"));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user