广度优先遍历思路:
还是以之前深度优先遍历的图为例,如下:
A B C D E F G H
A[0, 1, 0, 0, 0, 1, 0, 1]
B[1, 0, 1, 0, 0, 0,...0, 1, 0]
G[0, 1, 0, 0, 1, 1, 0, 0]
H[1, 0, 0, 1, 0, 0, 0, 0]
所谓广度优先,就类似二叉树的层序遍历,先搞完第一行,搞完第一行搞下一行。...具体步骤如下:
输出当前顶点A;
紧接者输出二维数组第一行所有1对应的顶点,即B,F,H;
第一行搞完,那就搞A的第一个邻接顶点B所在的行,输出B所在的行所有未被访问过的1对应的顶点,即C,G;
搞完A...,最终的遍历结果是:
A -- B -- F -- H -- C -- G -- D -- E
2....; // 存放顶点
private int[][] edges; // 邻接矩阵,存放图的边
private boolean[] isVisited; // 顶点是否被访问
/