Advertisement
Guest User

Untitled

a guest
Jul 27th, 2013
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.27 KB | None | 0 0
  1.      static int bfs(int i,int j,int k ,int count)
  2.      {
  3.  
  4.          
  5.         node node = new node(i,j,k,count);
  6.         node.d= 0; //distance to the source node is initialized to zero
  7.         Queue<node> q = new LinkedList<node>();
  8.         q.add(node); //add the first node to the queue
  9.        
  10.          while(!q.isEmpty()){
  11.                  node u = q.poll();
  12.                  for(int v = 0 ; v < 6 ; v++)
  13.                  { //check all the neighbours of u, if one of them is not visited, add it to the queue and mark it as visited
  14.                    
  15.                    
  16.                     int xx = u.x + dx[v];
  17.                     int yy = u.y + dy[v];
  18.                     int zz = u.z + dz[v];
  19.                    
  20.                    
  21.                     if(xx >= 0 && xx < l && yy >= 0 && yy < r && zz >= 0 && zz < c && !visited[xx][yy][zz] && maze[xx][yy][zz] != '#')
  22.                     {
  23.                    
  24.                         visited[xx][yy][zz] = true;
  25.                        
  26.                         node newNode= new node(xx,yy,zz,u.d+1);
  27.                              //v is not visited yet
  28.                                      
  29.                         q.add(newNode);
  30.                        
  31.                             if(eX == xx && eY == yy && eZ == zz)
  32.                             {
  33.                                 flag = true;
  34.                                 return count;
  35.                             }
  36.                     }
  37.                 }
  38.          }
  39.         return count;
  40.      }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement