图的广度优先搜索遍历

广度优先搜索(BFS)遍历类似于树的层次遍历,从任意顶点开始,首先访问该顶点,然后依次访问其所有邻接点,再访问邻接点的邻接点,直到所有与初始顶点有路径相连的顶点都被访问。算法中,使用队列保存已访问的顶点,确保先访问的顶点其邻接点先被访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

          广度优先搜索遍历的原理:广度优先搜索算法遍历类似于树的按层次遍历。设图G的初态是所有顶点均未访问过,在G中任选一顶点vi为初始出发点,则广度优先搜索的基本思想是:首先访问出发点vi,接着依次访问vi的所有邻接点,再接着访问邻接着的所有未曾访问过的顶点,依次类推,直至图中所有和初始出发点vi有路径相通的顶点都已访问到为止。

         图的广度优先搜索遍历的算法:

         设vi和vj是俩个相继被访问过的顶点,若当前是以vi为出发点进行搜索,则在访问vi的所有未曾访问过的邻接接点之后,紧接着是以vj为出发点进行横向搜索,并对搜索到的vj的邻接点中尚未被访问的顶点进行访问。也就是说,先访问的顶点其邻接点亦先被访问。因此,需要进队列保存已访问过的顶点。

        

template<class T>
void AbstractGraph<T>::BFSTraverse(int v)  //从顶点v出发对非连通图进行一次广度优先搜索遍历
{
  bool *visited = new bool[VertexCount()];  //访问标记数组
  int i;
  for(i=0;i<VertexCount();i++)  //设置未访问标记
	  visited[i] = false;

  i = v;
  do{
     if(!v
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值