假设有一张这样的图

边权都为1,那么邻接矩阵为

BFS的遍历顺序为1,2,3,4,5。
BFS可以用队列实现,若为刚才的图,则队列依次变化为
初始:
1 0 0 0 0
head=1 tail=2
进行一次后:
1 2 3 0 0
结束后:head=2 tail=3
1临近的点为2和3,并且均未走过,所以入队
进行两次后:
1 2 3 4 0
结束后:head=3 tail=4
上一次head为2则用2作为初始点,2可以枚举到3和4,由于3已入队,所以只将4入队。
进行3次后:
1 2 3 4 5
结束后:head=4 tail=5
上一次head为3则用3作为初始点,3可以枚举到4和5所以将4和5入队。
进行4次后:
1 2 3 4 5
结束后:head=5 tail=5
head=tail程序结束。
讲了这么多还是上段代码吧
给一个图(含顶点数,边数,以及边),输出BFS遍历顺序
#include <bits/stdc++.h>
using namespace std;
int n,m;
int book[1005]={
0};//存走没走过
int e[1005][1005];//邻接矩阵
int que[100005];//队列
int head,tail;

本文介绍了BFS(宽度优先搜索)算法在遍历图中的应用,详细讲解了BFS的基本思想和实现过程,并给出了具体的邻接矩阵及BFS遍历顺序。通过实例和代码演示,帮助理解BFS如何从一个未访问的点开始,逐步访问所有相邻顶点,直至遍历完整个图。
最低0.47元/天 解锁文章
795

被折叠的 条评论
为什么被折叠?



