数据结构-图的广度优先遍历(BFS)

来源:互联网 发布:淘宝网新百伦旗舰店 编辑:程序博客网 时间:2024/04/28 10:46
#include <stdio.h>#define MAX 6//使用邻接矩阵 int matrix[MAX][MAX];  //图的广度优先遍历 void BFS(int start) {int queue[MAX] = {0};int visited[MAX] = {0};  //优先队列 int head = 0;int tail = 0;int i;//开始先入队queue[tail++] = start;visited[start] = 1;while (head != tail) {int v = queue[head++];printf("%d ", v + 1);for (i = 0; i < MAX; i++) {if (matrix[v][i] == 1) {if (visited[i] == 0) {queue[tail++] = i;  //入队 visited[i] = 1;}}}}}void inputData() {int i, j;freopen("data.txt", "r", stdin);/*0 1 0 0 1 01 0 1 0 1 00 1 0 1 0 00 0 1 0 1 11 1 0 1 0 00 0 0 1 0 0 */for (i = 0; i < MAX; i++) {for (j = 0; j < MAX; j++) {scanf("%d", &matrix[i][j]);}}}int main() {inputData();BFS(1);return 0;}

0 0