C++ 一种函数,使用邻接列表表示法计算每个顶点的独立度和独立度
我有一个使用邻接列表表示的有向图。但我有麻烦了。我想写一个函数,计算每个顶点的独立度和出度。你能给我一个C++的解决方案吗? 以下是我的源代码:C++ 一种函数,使用邻接列表表示法计算每个顶点的独立度和独立度,c++,C++,我有一个使用邻接列表表示的有向图。但我有麻烦了。我想写一个函数,计算每个顶点的独立度和出度。你能给我一个C++的解决方案吗? 以下是我的源代码: #include<iostream> #include <list> using namespace std; // A directed graph using adjacency list representation class Graph { int V;
#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
计算]因此,我们鼓励海报自己尝试解决问题,然后我们可以帮助解决您可能遇到的特定问题。我们不会为您编写代码,因为这无助于您通过自己思考和解决问题来学习。请试着自己写代码,把你的问题贴出来。请检查你之前的问题,并将解决问题的答案标记为已接受。这向其他人表明问题已经解决,对回答你问题的人很有帮助。这也会鼓励更多的人在将来帮助你。。