Guest User

Untitled

a guest
Feb 21st, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.82 KB | None | 0 0
  1.  
  2. static int bfs(int p1, int p2)
  3. {
  4. Queue<Node> q = new ArrayDeque<Node>(allNodes.size()+2);
  5. q.offer(allNodes.get(p1));
  6. allNodes.get(p1).visited = true;
  7. int dist = 0;
  8. boolean complete = false;
  9. while(!q.isEmpty())
  10. {
  11. Node u = q.poll();
  12. if(u.equals(allNodes.get(p2)))
  13. {
  14. complete = true;
  15. break;
  16. }
  17. for(Node n : u.neighbors)
  18. {
  19. if(!n.visited)
  20. {
  21. if(n.equals(allNodes.get(p2)))
  22. {
  23. complete = true;
  24. }
  25. n.parent = u;
  26. q.offer(n);
  27. n.visited = true;
  28. }
  29. }
  30. if(complete)
  31. break;
  32. }
  33. if(complete)
  34. {
  35. dist = 0;
  36. Node currNode = allNodes.get(p2);
  37. while(currNode != allNodes.get(p1))
  38. {
  39. currNode = currNode.parent;
  40. dist++;
  41. }
  42. return dist;
  43. }
  44. ArrayList<Node> an = allNodes;
  45. return 0;
  46. }
Add Comment
Please, Sign In to add comment