与博客中的深度优先对照起来看,此处不再赘述。
void bfs(int begin)
{
int head = 0;//数组的起始位置
int tail = 0;//数组的起始位置
int i;
int cur;
que[tail] = begin;//起始点先加入队列,加入对尾
tail++;
book[begin] = 1;
while( head < tail && tail < n)
{
cur = que[head];
for(i=0;i<n;i++)
{
if(graph[cur][i] == 1 && book[i] == 0)
{
que[tail] = i;
tail++;
book[i] = 1;
}
if(tail >= n)
{
break;
}
}
head++;
}
for(i=0;i<tail;i++)
{
printf("%d ",que[i]);
}
}
Please input n lines and columns and m links to build a matrix!
5
5
Set linked line between nodes!
0
1
Set linked line between nodes!
0
2
Set linked line between nodes!
0
4
Set linked line between nodes!
1
3
Set linked line between nodes!
2
4
0 1 2 4 3
Press any key to continue