示例图的邻接矩阵表示:
0 1 2 3 4
0 0 1 1 0 0
1 1 0 0 1 0
2 1 0 0 1 0
3 0 1 1 0 1
4 0 0 0 1 0
BFS执行过程(从顶点0开始):
步骤1:访问0,查找邻接点
G.Edge[0][0]=0 ❌ G.Edge[0][1]=1 ✅ G.Edge[0][2]=1 ✅
G.Edge[0][3]=0 ❌ G.Edge[0][4]=0 ❌
队列:[0] → 出队0 → 队列:[] → 入队1,2 → 队列:[1,2]
visit: [1,1,1,0,0]
步骤2:访问1,查找邻接点
G.Edge[1][0]=1 ❌(已访问) G.Edge[1][1]=0 ❌ G.Edge[1][2]=0 ❌
G.Edge[1][3]=1 ✅ G.Edge[1][4]=0 ❌
队列:[1,2] → 出队1 → 队列:[2] → 入队3 → 队列:[2,3]
visit: [1,1,1,1,0]
步骤3:访问2,查找邻接点
G.Edge[2][0]=1 ❌(已访问) G.Edge[2][1]=0 ❌ G.Edge[2][2]=0 ❌
G.Edge[2][3]=1 ❌(已访问) G.Edge[2][4]=0 ❌
队列:[2,3] → 出队2 → 队列:[3] → 无新增 → 队列:[3]
visit: [1,1,1,1,0]
步骤4:访问3,查找邻接点
G.Edge[3][0]=0 ❌ G.Edge[3][1]=1 ❌(已访问) G.Edge[3][2]=1 ❌(已访问)
G.Edge[3][3]=0 ❌ G.Edge[3][4]=1 ✅
队列:[3] → 出队3 → 队列:[] → 入队4 → 队列:[4]
visit: [1,1,1,1,1]
步骤5:访问4,查找邻接点
队列:[4] → 出队4 → 队列:[] → 无新增
visit: [1,1,1,1,1]
访问顺序:0 -> 1 -> 2 -> 3 -> 4