数据结构 7.3.2图的广度优先遍历.ppt

数据结构 7.3.2图的广度优先遍历

7.3.2.连通图的广度优先遍历 1.广度优先遍历以x开始的连通图 访问X,且x入队列 若队列不空,重复以下步骤 取队头元素并放入v中 考察v的各个邻接点,若未访问,则先访问,然后放在队列尾部 返回步骤② 2.算法演示 演示开始,以v1为遍历的起点 3.算法实现 从演示过程可以看出,我们必须知道顶点是否已经被访问过。在具体实现时,我们用一个数组visited[]来记录顶点是否被访问过。如果visited[i]的值为True,则顶点vi已经被访问,否则没有被访问。 3.算法实现 Void BFS(Graph G,int x) { Visited[100]={False};//假设图中顶点数没有超过100个 Visited[x]=True;coutx;Queue.push(x); While(!Q.empty()) { V= Queue.front(); Queue.pop(); For(v的每个邻接点w) If(visited[w]==false) { Visited[w]=True;coutw;Queue.push(w); } } } 当图的存储结构为邻接表时,广度优先算法可以表示如下: void BFS (ALGraph mg,int x) { bool visited[100]={false}; queueint q; coutmg.vexs[x].data

文档评论(0)

1亿VIP精品文档

相关文档