标签:
1.广度优先遍历是连通图的一种遍历策略。其基本思想如下:
1)、从图中某个顶点V0出发,并访问此顶点;
2)、从V0出发,访问V0的各个未曾访问的邻接点W1,W2,…,Wk;然后,依次从W1,W2,…,Wk出发访问各自未被访问的邻接点;
3)、重复步骤2,直到全部顶点都被访问为止。
2.例如下图
3.下面是基于Java的代码实现
1 int rs[] = new int[100]; //访问结果集 2 int k = 0; //访问结果集计数 3 4 void bfs(int[][] map, int v) { 5 6 int max = map.length; 7 int size = max + 1; 8 int queue[] = new int[size]; 9 10 int front = 0; 11 int rear = 0; 12 13 int visited[] = new int[max]; 14 15 visited[v] = 1; 16 rear = (rear + 1) % size; 17 queue[rear] = v; 18 19 rs[k++] = v; 20 21 while (rear != front) { 22 23 front = (front + 1) % size; 24 int w = queue[front]; 25 for (int i = 0; i < map[w].length; i++) { 26 if (map[v][i] != 0 && visited[i] == 0) { 27 rear = (rear + 1) % size; 28 queue[rear] = i; 29 visited[i] = 1; 30 rs[k++] = i; 31 } 32 } 33 } 34 35 }
标签:
原文地址:http://www.cnblogs.com/yfyzy/p/4542677.html