Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static int bfs(int p1, int p2)
- {
- Queue<Node> q = new ArrayDeque<Node>(allNodes.size()+2);
- q.offer(allNodes.get(p1));
- allNodes.get(p1).visited = true;
- int dist = 0;
- boolean complete = false;
- while(!q.isEmpty())
- {
- Node u = q.poll();
- if(u.equals(allNodes.get(p2)))
- {
- complete = true;
- break;
- }
- for(Node n : u.neighbors)
- {
- if(!n.visited)
- {
- if(n.equals(allNodes.get(p2)))
- {
- complete = true;
- }
- n.parent = u;
- q.offer(n);
- n.visited = true;
- }
- }
- if(complete)
- break;
- }
- if(complete)
- {
- dist = 0;
- Node currNode = allNodes.get(p2);
- while(currNode != allNodes.get(p1))
- {
- currNode = currNode.parent;
- dist++;
- }
- return dist;
- }
- ArrayList<Node> an = allNodes;
- return 0;
- }
Add Comment
Please, Sign In to add comment