#include<queue>
//从起始顶点s开始广度优先遍历图的非递归算法
void BFS(const int s)
{
int *visited = new int[graphsize];
for (int k = 0;k < graphsize;k++)
visited[k] = 0;
cout << s << " ";
visited[s] = 1;
queue<int> q;
q.push(s);
while (!q.empty())
{
int v = q.pop();
Edge*p = Head[v].adjacent;
while (p != NULL)
{
if (visited[p->VerAdj] == 0)
{
cout << p->VerAdj << " ";
visited[p->VerAdj] = 1;
q.push(p->veradj);
}
p = p->link;
}
}
delete[] visited;
}
数据结构--图BFS 非递归
最新推荐文章于 2023-05-09 15:45:17 发布