import java.util.LinkedList;
public class Bfs {
public static void main(String [] args)
{
int n = 4;
double [][] matrix =
{
{0, 1, 0, 0},
{1, 0, 0, 0},
{0, 0, 0, 1},
{0, 0, 1, 0},
};
boolean [] visited = new boolean [n];
for (int i = 0; i < n ; i ++)
visited [i] = false;
Bfs bfs = new Bfs();
for (int i = 0; i < n; i ++)
{
if (!visited [i])
{
bfs.BfsTrack(matrix, visited, n, i);
}
}
}
private void BfsTrack(double [][] matrix, boolean [] visited, int n, int i)
{
LinkedList<Integer> queue = new LinkedList<Integer>();
queue.add(i);
visited[i] = true;
System.out.print(" " + (i+1) + ", ");
while(queue.size()!=0)
{
int k = queue.pollFirst();
for (int j = 0; j < n; j ++)
{
if (matrix[k][j] != 0.0 && !visited[j])
{
queue.add(j);
visited[j] = true;
System.out.print(" " + (j+1) + ", ");
}
}
}
System.out.println("");
}
}
Java广度优先搜索
最新推荐文章于 2024-04-23 21:15:25 发布