- 对于广度优先遍历,使用递归方式实现非常普遍,这里我们讨论一下如何使用非递归来实现
算法
- 1、以图的邻接矩阵为例
- 2、使用一个queue来保存访问顺序,每次取队首元素,如果其有邻接点,则将其所有邻接点入队,并设置visit数组为1,最后再将其出队
- 3、循环结束条件为:队列为空
代码实现
以下图为例
public class BfsIterateAdjacentMatrix {
private static Map<Integer, String> idVertexMap = new HashMap<Integer, String>(){
{
put(0,"V0");
put(1,"V1");
put(2,"V2");
put(3,"V3");
put(4,"V4");
put(5,"V5");
put