c_cpp BFS
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp BFS相关的知识,希望对你有一定的参考价值。
#include <iostream>
using namespace std;
class graph {
int v;
int **adj;
public:
graph (int v) {
this->v= v;
adj= new int*[v];
for (int i=0; i<v; i++)
adj[i]= new int [v];
for (int i=0; i<v; i++)
for (int j=0; j<v; j++)
adj[i][j]= 0;
}
void addEdge (int u, int w) {
adj[u][w]= 1;
}
void bfs (int );
};
void graph::bfs(int s) {
bool visited[v]= {0};
int q[v], front=0, back=0,x;
q[back++]= s;
while (front< back) {
x= q[front++];
visited[x]= 1;
cout<< x << " ";
for (int j=0; j<v; j++)
if (adj[x][j]== 1 & !visited[j])
q[back++]= j;
}
}
int main() {
graph g(4);
g.addEdge(0,1);
g.addEdge(0,2);
g.addEdge(1,2);
g.addEdge(2,0);
g.addEdge(2,3);
g.addEdge(3,3);
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]字梯。给定两个单词(开头和结尾)和一个字典,从星上找到最短变换序列的长度
我们啥时候应该使用普通 BFS 而不是双向 BFS?