c_cpp 计算森林中树木的数量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 计算森林中树木的数量相关的知识,希望对你有一定的参考价值。

//https://www.geeksforgeeks.org/count-number-trees-forest/
#include <bits/stdc++.h>
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 u, int w) {
        adj[u].push_back(w);
        adj[w].push_back(u);
    }
    void print();
    void DFSUtil (int, vector<bool>&);
    int cTrees();

};
void graph::print() {
    for (int i=0;i<v;i++) {
        list <int>::iterator j;
        cout<< i << " : ";
        for (j= adj[i].begin(); j!= adj[i].end(); ++j)
            cout<< *j << " ";

        cout<< "\n";
    }

}
void graph:: DFSUtil (int s,vector<bool> &visited) {
    visited[s]=1;
    list<int>::iterator i;
    for ( i=adj[s].begin(); i!= adj[s].end(); ++i)
        if (!visited[*i])
            DFSUtil (*i, visited);
}
int graph::cTrees () {
    vector<bool> visited (v, false);
    int r=0;
    for (int i=0; i<v; i++) {
        if (visited[i] == 0) {
            DFSUtil (i, visited);
            r++;
        }
    }
    return r;
}

int main() {
    int v=5;
    graph g(v);
    g.addEdge(0, 1);
    g.addEdge(0, 2);
    g.addEdge(3, 4);
    cout<< g.cTrees();
}

以上是关于c_cpp 计算森林中树木的数量的主要内容,如果未能解决你的问题,请参考以下文章

小波变换网文精粹:小波:看森林,也看树木

毕设题目: Matlab元胞自动机森林火灾

先森林后树木:Elasticsearch各版本升级核心内容必看

如何在Python中从零开始实现随机森林

延迟加载孩子,里面有急切的集合

Google earth engine——全球森林碳通量(2001-2021)数据集可视化含代码