图的广度优先算法是利用队列先进先出的特点搜索的,由起点分层遍历。
算法如下
void BFS-Traversal(Graph G,Vertex v)
{
Queue q;
bool visited[maxsize];
Vertex w,x;
for(all v in G)visited[v]=false;
EnQueue(q,v);
while(!QueueEmpty(q))
{
DeQueue(q,w);
if((!visited[w]))
{
visited[w]=true;
(visit)(w);
for(all x adjacent to w)
EnQueue(q,x);
}
}
}