c_cpp 图表的BFS
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 图表的BFS相关的知识,希望对你有一定的参考价值。
//https://www.geeksforgeeks.org/breadth-first-search-or-bfs-for-a-graph/
#include <iostream>
#include <list>
using namespace std;
class Graph {
int V;
list <int> *adj;
public:
Graph(int V){
this->V = V;
adj = new list<int>[V];
}
void addEdge (int v, int w);
void bfs(int s);
};
void Graph::addEdge(int v, int w) {
adj[v].push_back(w);
}
void Graph::bfs (int s) {
bool visited[V];
for (int i=0; i<V;i++)
visited[i]= false;
list <int> queue;
visited[s]= 1;
queue.push_back(s);
list<int>::iterator i;
while(!queue.empty()) {
s= queue.front();
cout<< s<< " ";
queue.pop_front();
for (i=adj[s].begin(); i!= adj[s].end(); ++i) {
if (visited[*i]== false) {
queue.push_back(*i);
visited[*i]=1;
}
}
}
}
int main() {
int V,a,b;
cin>>V;
Graph g(V);
while(true) {
cin>>a>>b;
if (a== -1 && b== -1)
break;
else
g.addEdge(a,b);
}
g.bfs(2);
}
以上是关于c_cpp 图表的BFS的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp BFS
c_cpp bfs.cpp
c_cpp BFS(宽度优先搜索算法)-C ++
c_cpp [tree] [dfs] [bfs]二叉树的最小深度
c_cpp [bfs] [string]字梯。给定两个单词(开头和结尾)和一个字典,从星上找到最短变换序列的长度
c_cpp 图表的DFS