广度优先生成树怎么得到?知道如何广度搜索,但生成树的边怎么来的?
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/08 04:57:32
![广度优先生成树怎么得到?知道如何广度搜索,但生成树的边怎么来的?](/uploads/image/z/15091579-19-9.jpg?t=%E5%B9%BF%E5%BA%A6%E4%BC%98%E5%85%88%E7%94%9F%E6%88%90%E6%A0%91%E6%80%8E%E4%B9%88%E5%BE%97%E5%88%B0%3F%E7%9F%A5%E9%81%93%E5%A6%82%E4%BD%95%E5%B9%BF%E5%BA%A6%E6%90%9C%E7%B4%A2%2C%E4%BD%86%E7%94%9F%E6%88%90%E6%A0%91%E7%9A%84%E8%BE%B9%E6%80%8E%E4%B9%88%E6%9D%A5%E7%9A%84%3F)
xSk@#E(鈤l1?lP@ƈFҴvbŗٹMlٗ)2ŵL/7 (Ԕ2G&ued-c/Mi@yb/hOXl҅@C?71:[hC㦸aΩOU3+=Zr\i_C__6^ IW]`O~뿷BjYfW^(ZٵaoBhBd킉*x
XܵLV;O ~Nٳ"P4|B{VHH+b*
广度优先生成树怎么得到?知道如何广度搜索,但生成树的边怎么来的?
广度优先生成树怎么得到?知道如何广度搜索,但生成树的边怎么来的?
广度优先生成树怎么得到?知道如何广度搜索,但生成树的边怎么来的?
#define True 1
#define False 0
int visited[MAX_VERTEX_NUM];
void BreadthFirstSearch(Graph g,int v0)
{/*广度优先搜索图g中v0所在的连通子图*/
int x,w,m;
InitQueue(&Q);
EnterQueue(&Q,v0);
while(!Empty(Q))
{
DeleteQueue(&Q,&x);
if(!visited[x])
{
visit(x);
visited[x]=True;
}
w=FirstAdjVertex(g,x);
while((w!=-1)&&!visited[w])
{
EnterQueue(&Q,w);
w=NextAdjVertex(g,x,w);
}
}
}
这个是广度优先搜索图,你可以看看,广度的话就是首先遍历顶点的邻接顶点,然后再从第一个邻接顶点继续遍历所没有访问过的它本身的邻接顶点,如此继续循环