All pastes #2133581 Raw Edit

Miscellany

public text v1 · immutable
#2133581 ·published 2012-03-29 17:29 UTC
rendered paste body
    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);
        }
    }