Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 一种函数,使用邻接列表表示法计算每个顶点的独立度和独立度_C++ - Fatal编程技术网

C++ 一种函数,使用邻接列表表示法计算每个顶点的独立度和独立度

C++ 一种函数,使用邻接列表表示法计算每个顶点的独立度和独立度,c++,C++,我有一个使用邻接列表表示的有向图。但我有麻烦了。我想写一个函数,计算每个顶点的独立度和出度。你能给我一个C++的解决方案吗? 以下是我的源代码: #include<iostream> #include <list> using namespace std; // A directed graph using adjacency list representation class Graph { int V;

我有一个使用邻接列表表示的有向图。但我有麻烦了。我想写一个函数,计算每个顶点的独立度和出度。你能给我一个C++的解决方案吗? 以下是我的源代码:

    #include<iostream>
    #include <list>
    using namespace std;

    // A directed graph using adjacency list representation
    class Graph
    {
        int V;    // No. of vertices in graph
        list<int> *adj; // Pointer to an array containing adjacency lists

        // A recursive function used by printAllPaths()
        void printAllPathsUtil(int , int , bool [], int [], int &);

    public:
        Graph(int V);   // Constructor
        void addEdge(int u, int v);
    };

    Graph::Graph(int V)
    {
        this->V = V;
        adj = new list<int>[V];
    }

    void Graph::addEdge(int u, int v)
    {
        adj[u].push_back(v); // Add v to u’s list.
    }
#包括
#包括
使用名称空间std;
//使用邻接表表示的有向图
类图
{
int V;//图中的顶点数
list*adj;//指向包含邻接列表的数组的指针
//PrintAllPath()使用的递归函数
void printAllPathsUtil(int,int,bool[],int[],int&);
公众:
图(int V);//构造函数
无效补遗(整数u,整数v);
};
图形::图形(intv)
{
这个->V=V;
adj=新列表[V];
}
void图::addEdge(int u,int v)
{
adj[u]。向后推(v);//将v添加到u的列表中。
}

只需绘制一张图表,自己计算出指数和超越指数。你会明白你需要做什么。 我会给你提示,这样你就可以自己解决了

Hint-1

Outdegree是节点的简单输出。想想邻接列表条目包含什么?这就是从它开始的所有节点。明白了

Hint-2

在查看年龄
a-->b
时,您还将注意
b
。因此,
b
中有一些东西必须对indegree有所贡献。不是吗?穿过所有的边缘,你就会知道


[您可能需要使用数组进行
indegree
计算]

因此,我们鼓励海报自己尝试解决问题,然后我们可以帮助解决您可能遇到的特定问题。我们不会为您编写代码,因为这无助于您通过自己思考和解决问题来学习。请试着自己写代码,把你的问题贴出来。请检查你之前的问题,并将解决问题的答案标记为已接受。这向其他人表明问题已经解决,对回答你问题的人很有帮助。这也会鼓励更多的人在将来帮助你。。