private static void findPath(int from, int to){
LinkedList<Integer> q = new LinkedList<Integer>();
HashMap<Integer, Integer> nextNode = new HashMap<Integer, Integer>();
boolean[] visited = new boolean[graph.numVertices()];
visited[from] = true;
q.add(new Integer(from));
int current = from;
while(!q.isEmpty()){
current = q.remove().intValue();
if (current == to){
break;
}
VertexIterator it = graph.adjacentVertices(current);
while(it.hasNext()){
int next = it.next();
if (!visited[next]){
visited[next] = true;
q.add(new Integer(next));
//Allows us to trace back the route taken
nextNode.put(new Integer(next), new Integer(current));
}
}
}
//If node was unreachable
if (current != to){
return;
}
String s = "";
for (Integer i = new Integer(to); i != null; i = nextNode.get(i)){
s = s + i + " ";
}
for (int i = s.length() -1; i >= 0; i--){
path += s.charAt(i);
}
}