图的邻接矩阵存储下的广度优先遍历:就像树的按层次遍历,需要借助队列实现。
图的邻接矩阵存储下的广度优先遍历的实现代码如下:
/***
*
* 邻接矩阵广度优先遍历
*
*/
public void breadthFirstTravel()
{
System.out.println("邻接矩阵的广度优先遍历:");
//初始化队列,LinkedList实现了Queue接口
Queue<Integer> queue=new LinkedList<Integer>();
//初始化各顶点的访问状态
int []visited=new int[mapping.length];
//从未访问顶点中任选一个顶点作为起始顶点
int unvisited=getUnvisited(visited);
while(unvisited>=0)
{
//起始顶点入队
queue.add(unvisited);
while(!queue.isEmpty())
{
//出队顶点并访问
int index=queue.poll();
if(visited[index]==1)
{
continue;
}
System.out.print(mapping[index]+" ");
//标记被访问
visite