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