# 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;
}
}
}
}
}
int main()
{
int i, j;
for (i=0; i<MAX; i++)
{
for (j=0; j<MAX; j++)
{
scanf("%d", &matrix[i][j]);
}
}
BFS(0);
return 0;
}
单独的BFS实现
最新推荐文章于 2023-08-30 15:54:23 发布